﻿//начало текста модуля  
&НаКлиенте
Перем Ванесса;

&НаКлиенте
Перем Контекст Экспорт;
&НаКлиенте
Перем КонтекстСохраняемый Экспорт;

&НаКлиенте
Перем ТекущийЭлементДляРаботы;

&НаКлиенте
Функция ДобавитьШагВМассивТестов(МассивТестов,Снипет,ИмяПроцедуры,ПредставлениеТеста = Неопределено,Транзакция = Неопределено,Параметр = Неопределено)
	Структура = Новый Структура;
	Структура.Вставить("Снипет",Снипет);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ПредставлениеТеста",ПредставлениеТеста);
	Структура.Вставить("Транзакция",Транзакция);
	Структура.Вставить("Параметр",Параметр);
	МассивТестов.Добавить(Структура);
КонецФункции

&НаКлиенте
Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
	Ванесса = КонтекстФреймворкаBDD;
	
	ВсеТесты = Новый Массив;

	//описание параметров
	//ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,Транзакция,Параметр);

	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираюСВыбором(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираюСВыбором","В открытой форме в ТЧ ""ТабличнаяЧасть1"" из выпадающего списка с заголовком ""Реквизит справочник"" я выбираю ""ТестовыйЭлемент21"" с выбором");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираюСВыбором(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираюСВыбором","В открытой форме в ТЧ ""ТабличнаяЧасть1"" из выпадающего списка ""Реквизит справочник"" я выбираю ""ТестовыйЭлемент21"" с выбором");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВФормеВТЧЯЗавершаюРедактированиеСтроки(Парам01,Парам02)","ВФормеВТЧЯЗавершаюРедактированиеСтроки","В форме ""Справочник1"" в ТЧ ""ТабличнаяЧасть1"" я завершаю редактирование строки");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизитаСЗаголовком(Парам01,Парам02)","ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизитаСЗаголовком","В открытой форме в ТЧ ""ДокументыПоВидам"" я нажимаю кнопку выбора у реквизита с заголовком ""Скан""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизита(Парам01,Парам02)","ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизита","В открытой форме в ТЧ ""ДокументыПоВидам"" я нажимаю кнопку выбора у реквизита ""Скан""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯПерехожуНаОднуСтрокуВниз(Парам01)","ВОткрытойФормеВТЧЯПерехожуНаОднуСтрокуВниз","И     В открытой форме в ТЧ  ""Список"" я перехожу на одну строку вниз");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВПолеСЗаголовкомЯВвожуТекст(Парам01,Парам02)","ВОткрытойФормеВПолеСЗаголовкомЯВвожуТекст","И     В открытой форме в поле с заголовком ""Наименование"" я ввожу текст ""111""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВПолеЯВвожуТекст(Парам01,Парам02)","ВОткрытойФормеВПолеЯВвожуТекст","И     В открытой форме в поле ""Наименование"" я ввожу текст ""111""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ТаблицаФормыСИменемСталаРавной(Парам01,ТабПарам)","ТаблицаФормыСИменемСталаРавной","И     таблица формы с именем ""ТабличнаяЧасть1"" стала равной:");
	ДобавитьШагВМассивТестов(ВсеТесты,"ТаблицаФормыСИменемСодержитИзменения(Парам01,ТабПарам)","ТаблицаФормыСИменемСодержитИзменения","Тогда таблица формы с именем ""ТабличнаяЧасть1"" содержит изменения:");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВПанелиРазделовЯВыбираю(Парам01)","ВПанелиРазделовЯВыбираю","Когда В панели разделов я выбираю ""Склады""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВПанелиФункцийЯВыбираю(Парам01)","ВПанелиФункцийЯВыбираю","И     В панели функций я выбираю ""Склады""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСЗаголовком(Парам01)","ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСЗаголовком","И     В открытой форме я нажимаю кнопку выбора у поля с заголовком ""Реквизит2""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюКнопкуВыбораУПоля(Парам01)","ВОткрытойФормеЯНажимаюКнопкуВыбораУПоля","И     В открытой форме я нажимаю кнопку выбора у поля ""Реквизит2""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСИменем(Парам01)","ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСИменем","И     В открытой форме я нажимаю кнопку выбора у поля с именем ""Реквизит4""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ТабличныйДокументФормыСИменемСталРавен(Парам01,ТабПарам)","ТабличныйДокументФормыСИменемСталРавен","И     табличный документ формы с именем ""РеквизитТабличныйДокумент"" стал равен:");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующий()","ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующий","Дано Я открыл новый сеанс TestClient или подключил уже существующий");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующийБезЗагрузкиНастроек()","ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующийБезЗагрузкиНастроек","Дано Я открыл новый сеанс TestClient или подключил уже существующий без загрузки настроек");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрылНовыйСеансTestClientОтИмениСПаролем(Логин,Пароль)","ЯОткрылСеансTestClientОтИмениСПаролемИлиПодключаюУжеСуществующий","Дано Я открыл новый сеанс TestClient от имени ""МойПользователь"" с паролем ""МойПароль""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯЗакрылВсеОкнаКлиентскогоПриложения()","ЯЗакрылВсеОкнаКлиентскогоПриложения","И    Я закрыл все окна клиентского приложения");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюКнопкуКомандногоИнтерфейса(Парам01)","ЯНажимаюКнопкуКомандногоИнтерфейса","Когда Я нажимаю кнопку командного интерфейса ""Основная""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ОткрылосьОкно(Парам01)","ОткрылосьОкно","Тогда открылось окно ""Справочник1""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаКнопкуСЗаголовком(Парам01)","ВОткрытойФормеЯНажимаюНаКнопкуСЗаголовком","И     В открытой форме я нажимаю на кнопку с заголовком ""Создать""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаКнопку(Парам01)","ВОткрытойФормеЯНажимаюНаКнопку","И     В открытой форме я нажимаю на кнопку ""Создать""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВПолеСИменемЯВвожуТекст(Парам01,Парам02)","ВОткрытойФормеВПолеСИменемЯВвожуТекст","И     В открытой форме в поле с именем ""Наименование"" я ввожу текст ""111""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯПерехожуКЗакладкеСЗаголовком(Парам01)","ВОткрытойФормеЯПерехожуКЗакладкеСЗаголовком","И     В открытой форме я перехожу к закладке с заголовком ""Вспомогательная""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯПерехожуКЗакладке(Парам01)","ВОткрытойФормеЯПерехожуКЗакладке","И     В открытой форме я перехожу к закладке ""Вспомогательная""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯПерехожуКЗакладкеСИменем(Парам01)","ВОткрытойФормеЯПерехожуКЗакладкеСИменем","И     В открытой форме я перехожу к закладке с именем ""Вспомогательная""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЭлементФормыСИменемСталРавен(Парам01,Парам02)","ЭлементФормыСИменемСталРавен","Тогда элемент формы с именем ""Наименование"" стал равен ""111""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаГиперссылкуСЗаголовком(Парам01)","ВОткрытойФормеЯНажимаюНаГиперссылкуСЗаголовком","И     В открытой форме я нажимаю на гиперссылку с заголовком ""Гиперссылка""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаГиперссылку(Парам01)","ВОткрытойФормеЯНажимаюНаГиперссылку","И     В открытой форме я нажимаю на гиперссылку ""Гиперссылка""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаГиперссылкуСИменем(Парам01)","ВОткрытойФормеЯНажимаюНаГиперссылкуСИменем","И     В открытой форме я нажимаю на гиперссылку с именем ""Гиперссылка""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаКнопкуСИменем(Парам01)","ВОткрытойФормеЯНажимаюНаКнопкуСИменем","И     В открытой форме я нажимаю на кнопку с именем ""ЗаполнитьРекСтрока1""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯСворачиваюГруппуСЗаголовком(Парам01)","ВОткрытойФормеЯСворачиваюГруппуСЗаголовком","И     В открытой форме я сворачиваю группу с заголовком ""СворачиваемаяГруппа""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯСворачиваюГруппу(Парам01)","ВОткрытойФормеЯСворачиваюГруппу","И     В открытой форме я сворачиваю группу ""СворачиваемаяГруппа""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯСворачиваюГруппуСИменем(Парам01)","ВОткрытойФормеЯСворачиваюГруппуСИменем","И     В открытой форме я сворачиваю группу с именем ""СворачиваемаяГруппа""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯРазворачиваюГруппуСЗаголовком(Парам01)","ВОткрытойФормеЯРазворачиваюГруппуСЗаголовком","И     В открытой форме я разворачиваю группу с заголовком ""СворачиваемаяГруппа""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯРазворачиваюГруппу(Парам01)","ВОткрытойФормеЯРазворачиваюГруппу","И     В открытой форме я разворачиваю группу ""СворачиваемаяГруппа""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯРазворачиваюГруппуСИменем(Парам01)","ВОткрытойФормеЯРазворачиваюГруппуСИменем","И     В открытой форме я разворачиваю группу с именем ""СворачиваемаяГруппа""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯОткрываюВыпадающийСписокСЗаголовком(Парам01)","ВОткрытойФормеЯОткрываюВыпадающийСписокСЗаголовком","И     В открытой форме я открываю выпадающий список с заголовком ""Реквизит2""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯОткрываюВыпадающийСписок(Парам01)","ВОткрытойФормеЯОткрываюВыпадающийСписок","И     В открытой форме я открываю выпадающий список ""Реквизит2""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯОткрываюВыпадающийСписокСИменем(Парам01)","ВОткрытойФормеЯОткрываюВыпадающийСписокСИменем","И     В открытой форме я открываю выпадающий список с именем ""Реквизит2""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(Парам01)","ВОткрытойФормеЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка","И     В открытой форме я выбираю значение реквизита с заголовком ""Реквизит2"" из формы списка");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯВыбираюЗначениеРеквизитаИзФормыСписка(Парам01)","ВОткрытойФормеЯВыбираюЗначениеРеквизитаИзФормыСписка","И     В открытой форме я выбираю значение реквизита ""Реквизит2"" из формы списка");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка(Парам01)","ВОткрытойФормеЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка","И     В открытой форме я выбираю значение реквизита с именем ""Реквизит2"" из формы списка");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВФормеВТаблицеЯПерехожуКСтроке(Парам01,Парам02,ТабПарам)","ВФормеВТаблицеЯПерехожуКСтроке","И     В форме ""Справочник2"" в таблице ""Список"" я перехожу к строке:");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВФормеВТЧЯВыбираюТекущуюСтроку(Парам01,Парам02)","ВФормеВТЧЯВыбираюТекущуюСтроку","И     В форме ""Справочник2"" в ТЧ ""Список"" я выбираю текущую строку");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным(Парам01,Парам02,Парам03,Парам04)","ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным","И     Есть элемент справочника ""Справочник1"" с наименованием ""Тест"" и  реквизитом ""Реквизит2"" равным ""Группа2Элем2""");
	//ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю(Парам01)","ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю","И     В открытой форме из выпадающего списка я выбираю ""ЗначениеПеречисления1""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯИзменяюФлагСЗаголовком(Парам01)","ВОткрытойФормеЯИзменяюФлагСЗаголовком","И     В открытой форме я изменяю флаг с заголовком ""Реквизит булево""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯИзменяюФлаг(Парам01)","ВОткрытойФормеЯИзменяюФлаг","И     В открытой форме я изменяю флаг ""Реквизит булево""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯИзменяюФлагСИменем(Парам01)","ВОткрытойФормеЯИзменяюФлагСИменем","И     В открытой форме я изменяю флаг с именем ""Реквизит булево""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯМеняюЗначениеПереключателяСЗаголовкомНа(Парам01,Парам02)","ВОткрытойФормеЯМеняюЗначениеПереключателяСЗаголовкомНа","И     В открытой форме я меняю значение переключателя с заголовком ""Реквизит переключатель"" на ""Первое значение""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯМеняюЗначениеПереключателяНа(Парам01,Парам02)","ВОткрытойФормеЯМеняюЗначениеПереключателяНа","И     В открытой форме я меняю значение переключателя ""Реквизит переключатель"" на ""Первое значение""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯМеняюЗначениеПереключателяСИменемНа(Парам01,Парам02)","ВОткрытойФормеЯМеняюЗначениеПереключателяСИменемНа","И     В открытой форме я меняю значение переключателя с именем ""Реквизит переключатель"" на ""Первое значение""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯНажимаюНаКнопкуСЗаголовком(Парам01,Парам02)","ВОткрытойФормеВТЧЯНажимаюНаКнопкуСЗаголовком","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я нажимаю на кнопку с заголовком ""Добавить""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯНажимаюНаКнопку(Парам01,Парам02)","ВОткрытойФормеВТЧЯНажимаюНаКнопку","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я нажимаю на кнопку ""Добавить""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯНажимаюНаКнопкуСИменем(Парам01,Парам02)","ВОткрытойФормеВТЧЯНажимаюНаКнопкуСИменем","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я нажимаю на кнопку с именем ""Добавить""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧВПолеСЗаголовкомЯВвожуТекст(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧВПолеСЗаголовкомЯВвожуТекст","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" в поле с заголовком ""Реквизит число"" я ввожу текст ""56,78""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧВПолеЯВвожуТекст(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧВПолеЯВвожуТекст","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" в поле ""Реквизит число"" я ввожу текст ""56,78""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧВПолеСИменемЯВвожуТекст(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧВПолеСИменемЯВвожуТекст","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" в поле с именем ""Реквизит число"" я ввожу текст ""56,78""");
	
	
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираю(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираю","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" из выпадающего списка с заголовком ""Реквизит справочник"" я выбираю ""ТестовыйЭлемент21""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираю(Парам01,Парам02,Парам03)","ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираю","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" из выпадающего списка ""Реквизит справочник"" я выбираю ""ТестовыйЭлемент21""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯИзменяюФлагСЗаголовком(Парам01,Парам02)","ВОткрытойФормеВТЧЯИзменяюФлагСЗаголовком","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я изменяю флаг с заголовком ""Реквизит булево""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯИзменяюФлаг(Парам01,Парам02)","ВОткрытойФормеВТЧЯИзменяюФлаг","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я изменяю флаг ""Реквизит булево""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(Парам01,Парам02)","ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я выбираю значение реквизита с заголовком ""Реквизит справочник выбор из формы списка"" из формы списка");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаИзФормыСписка(Парам01,Парам02)","ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаИзФормыСписка","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я выбираю значение реквизита ""Реквизит справочник выбор из формы списка"" из формы списка");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка(Парам01,Парам02)","ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка","И     В открытой форме в ТЧ ""ТабличнаяЧасть1"" я выбираю значение реквизита с именем ""Реквизит справочник выбор из формы списка"" из формы списка");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЭлементСправочника1СИменемЗаписалсяКорректно(Парам01)","ЭлементСправочника1СИменемЗаписалсяКорректно","И     Элемент Справочника1 с именем ""Тестовый Элемент 2"" записался корректно");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯЗакрываюОкноСЗаголовком(Парам01)","ЯЗакрываюОкноСЗаголовком","И     Я закрываю окно с заголовком ""Справочник1""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯЗакрываюОкно(Парам01)","ЯЗакрываюОкно","И     Я закрываю окно ""Справочник1""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВТекущемОкнеЯНажимаюКнопкуКомандногоИнтерфейса(Парам01)","ВТекущемОкнеЯНажимаюКнопкуКомандногоИнтерфейса","И     В текущем окне я нажимаю кнопку командного интерфейса ""Общая команда для справочника1""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯДобавляюНовуюСтроку(Парам01)","ВОткрытойФормеВТЧЯДобавляюНовуюСтроку","И     В открытой форме в ТЧ ""Товары"" я добавляю новую строку");

	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСЗаголовком(Парам01)","ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСЗаголовком","И     В открытой форме я нажимаю на кнопку открытия поля с заголовком ""Реквизит2""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоля(Парам01)","ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоля","И     В открытой форме я нажимаю на кнопку открытия поля ""Реквизит2""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСИменем(Парам01)","ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСИменем","И     В открытой форме я нажимаю на кнопку открытия поля с именем ""Реквизит2""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеИзВыпадающегоСпискаСЗаголовкомЯВыбираю(Парам01,Парам02)","ВОткрытойФормеИзВыпадающегоСпискаСЗаголовкомЯВыбираю","И     В открытой форме из выпадающего списка с заголовком ""Реквизит2"" я выбираю ""ТестовыйЭлемент21""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю(Парам01,Парам02)","ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю","И     В открытой форме из выпадающего списка ""Реквизит2"" я выбираю ""ТестовыйЭлемент21""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеИзВыпадающегоСпискаСИменемЯВыбираю(Парам01,Парам02)","ВОткрытойФормеИзВыпадающегоСпискаСИменемЯВыбираю","И     В открытой форме из выпадающего списка с именем ""Реквизит2"" я выбираю ""ТестовыйЭлемент21""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСЗаголовком(Парам01)","ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСЗаголовком","И     В открытой форме я нажимаю кнопку очистить у поля с заголовком ""Отбор""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоля(Парам01)","ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоля","И     В открытой форме я нажимаю кнопку очистить у поля ""Отбор""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСИменем(Парам01)","ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСИменем","И     В открытой форме я нажимаю кнопку очистить у поля с именем ""Отбор""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ТабличныйДокументФормыСИменемСталПустым(Парам01)","ТабличныйДокументФормыСИменемСталПустым","И     табличный документ формы с именем ""РеквизитТабличныйДокумент"" стал пустым");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТаблицеСИменемВКолонкеНетЗначения(Парам01,Парам02,Парам03)","ВОткрытойФормеВТаблицеСИменемВКолонкеНетЗначения","И В открытой форме в таблице с именем ""ДеревоТестов"" в колонке ""Имя"" нет значения ""Temp1""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТаблицеСИменемВКолонкеЕстьЗначение(Парам01,Парам02,Парам03)","ВОткрытойФормеВТаблицеСИменемВКолонкеЕстьЗначение","И В открытой форме в таблице с именем ""ДеревоТестов"" в колонке ""Имя"" есть значение ""ОткрытиеФормы""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯАктивизируюПоле(Парам01,Парам02)","ВОткрытойФормеВТЧЯАктивизируюПоле","И     В открытой форме в ТЧ ""Отборы"" я активизирую поле ""Условие""");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯАктивизируюПолеСИменем(Парам01,Парам02)","ВОткрытойФормеВТЧЯАктивизируюПолеСИменем","И     В открытой форме в ТЧ ""Отборы"" я активизирую поле с именем ""Условие""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯБудуВыбиратьВнешнийФайл(Парам01)","ЯБудуВыбиратьВнешнийФайл","И     я буду выбирать внешний файл ""c:\temp\333.epf""");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯОчищаюОкноСообщенийПользователю","ЯОчищаюОкноСообщенийПользователю","И     Я очищаю окно сообщений пользователю");
	
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯПерехожуПоНавигационнойСсылке(Парам01)","ЯПерехожуПоНавигационнойСсылке","Когда я перехожу по навигационной ссылке ""НавигационнаяСсылка""");
	
	Возврат ВсеТесты;
КонецФункции

&НаКлиенте
Процедура ПередНачаломСценария() Экспорт
	УдалитьВсеЭлементыСправочникаВида("Справочник1");
	УдалитьВсеЭлементыСправочникаВида("Справочник2");
	Макет = ПолучитьМакетСервер("Fixtures");
	Ванесса.СоздатьДанныеПоТабличномуДокументу(Макет);
	
	
КонецПроцедуры

&НаКлиенте
Процедура ПередОкончаниемСценария() Экспорт
	
КонецПроцедуры

&НаКлиенте
Функция АктивизироватьКнопку(Кнопка,ТекущаяФорма = Неопределено,ТЧ = Неопределено)
	ПолучилосьАктивизировать = Ложь;
	Если Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели Тогда
		Попытка
			//в 8.3.7 эта строка вызывает проблему для кнопок диалогов
			Если ТЧ <> Неопределено Тогда
				КоманднаяПанельФормы = ТЧ.ПолучитьКоманднуюПанель();
			Иначе	
				КоманднаяПанельФормы = ТекущаяФорма.ПолучитьКоманднуюПанель();
			КонецЕсли;	 
			
			Если КоманднаяПанельФормы <> Неопределено Тогда
				КоманднаяПанельФормы.Активизировать();
				ПолучилосьАктивизировать = Истина;
			КонецЕсли;	 
		Исключение
		
		КонецПопытки;
	Иначе	
		Кнопка.Активизировать();
		ПолучилосьАктивизировать = Истина;
	КонецЕсли;	 
	
	Возврат ПолучилосьАктивизировать;
КонецФункции	

&НаКлиенте
Процедура СделатьДействияПриЗаписиВидео(ПарамСтр = "")
	Ванесса.СделатьДействияПриЗаписиВидео(ПарамСтр);
КонецПроцедуры

&НаКлиенте
Процедура СделатьДействияПриЗаписиHTML(ПарамСтр = "")
	Ванесса.СделатьДействияПриЗаписиHTML(ПарамСтр);
КонецПроцедуры

&НаКлиенте
Функция ПолучитьАктивноеОкноИзКонтекста()
	Возврат Контекст.АктивноеОкно;
КонецФункции	

&НаКлиенте
Функция ПолучитьАктивноеОкноИзТестовоеПриложение()
	Возврат КонтекстСохраняемый.ТестовоеПриложение.ПолучитьАктивноеОкно();
КонецФункции	

&НаКлиенте
Функция НайтиФормуПоЗаголовку(ИмяФормы)
	ОкноПриложения = ПолучитьАктивноеОкноИзТестовоеПриложение();
	НужнаяФорма    = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"), ИмяФормы);
	Если НужнаяФорма = Неопределено Тогда
		//иногда 1С некорректно отдаёт текущее окно, тогда будем искать во всех окнах
		//сначала поищем в недавно открытом окне
		
		Попытка
			ОкноПриложения = ПолучитьАктивноеОкноИзКонтекста();
			НужнаяФорма    = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"), ИмяФормы);
			Если НужнаяФорма <> Неопределено Тогда
				Контекст.Вставить("АктивноеОкно",ОкноПриложения); //произошла неявная смена активного окна
				Возврат НужнаяФорма;
			КонецЕсли;	 
		Исключение
			
		КонецПопытки;
		
		
		//затем будем искать во всех окнах
		МассивОкон = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"));
		Для каждого ТекОкно Из МассивОкон Цикл
			
			НужнаяФорма    = ТекОкно.НайтиОбъект(Тип("ТестируемаяФорма"), ИмяФормы);
			Если НужнаяФорма <> Неопределено Тогда
				Контекст.Вставить("АктивноеОкно",ТекОкно); //произошла неявная смена активного окна
				Возврат НужнаяФорма;
			КонецЕсли;	 
			
		КонецЦикла;
	КонецЕсли;	 
	
	Если НужнаяФорма = Неопределено Тогда
		Стр = "Форма с заголовком <" + ИмяФормы + "> не найдена!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	Контекст.Вставить("АктивноеОкно",ОкноПриложения); //произошла неявная смена активного окна
	Возврат НужнаяФорма;
КонецФункции	

&НаКлиенте
Функция НайтиТЧПоИмени(ИмяТЧ)
	Получилось = Ложь;
	Если Не Получилось Тогда
		ОкноПриложения         = ПолучитьАктивноеОкноИзТестовоеПриложение();
		НужнаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
		
		Если НужнаяФорма = Неопределено Тогда
			//иногда 1С некорректно отдаёт текущее окно, тогда будем искать во всех окнах
			//сначала поищем в недавно открытом окне
			
			Попытка
				ОкноПриложения = ПолучитьАктивноеОкноИзКонтекста();
				НужнаяФорма    = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
			Исключение
				
			КонецПопытки;
			
			//Если НужнаяФорма = Неопределено Тогда
			//	//затем будем искать во всех окнах
			//	МассивОкон = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"));
			//	Для каждого ТекОкно Из МассивОкон Цикл
			//		
			//		НужнаяФорма    = ТекОкно.НайтиОбъект(Тип("ТестируемаяФорма"));
			//		Если НужнаяФорма <> Неопределено Тогда
			//			Контекст.Вставить("АктивноеОкно",ОкноПриложения); //произошла неявная смена активного окна
			//		КонецЕсли;	 
			//		
			//	КонецЦикла;
			//	
			//КонецЕсли;	 
		КонецЕсли;	 
		
		
		Если ИмяТЧ = "" Тогда
			ТЧ                     = НужнаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"));
		Иначе	
			ТЧ                     = НужнаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
		КонецЕсли;	 
		
	КонецЕсли;	 
	
	Возврат ТЧ;
КонецФункции	

&НаКлиенте
Функция НайтиФормыТекущегоОкна()
	ОкноПриложения         = ПолучитьАктивноеОкноИзТестовоеПриложение();
	МассивФорм             = ОкноПриложения.НайтиОбъекты(Тип("ТестируемаяФорма"));
	Возврат МассивФорм;
КонецФункции	

&НаКлиенте
Функция НайтиТекущуюФорму()
	Получилось = Истина;
	Попытка
		ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
		ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	Исключение
		Получилось = Ложь;	
	КонецПопытки;
	
	Если Не Получилось Тогда
		ОкноПриложения         = ПолучитьАктивноеОкноИзТестовоеПриложение();
		ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
		Контекст.Вставить("АктивноеОкно",ОкноПриложения); //произошла неявная смена активного окна
	КонецЕсли;	 
	
	Возврат ТекущаяФорма;
КонецФункции	

&НаКлиенте
//Я открыл новый сеанс TestClient или подключил уже существующий
//@ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующий()
Процедура ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующий() Экспорт
	ЯОткрылСеансTestClientОтИмениСПаролемИлиПодключаюУжеСуществующий();
КонецПроцедуры

&НаКлиенте
//Я открыл новый сеанс TestClient или подключил уже существующий без загрузки настроек
//@ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующийБезЗагрузкиНастроек()
Процедура ЯОткрылНовыйСеансTestClientИлиПодключилУжеСуществующийБезЗагрузкиНастроек() Экспорт
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
	Если НЕ Ванесса.ОткрытьНовыйСеансTestClientИлиПодключитьУжеСуществующий("/out""" + ИмяВременногоФайла + """ /CNoLoadConfig") Тогда
		ВызватьИсключение "Не смог подключить TestClient!";
	КонецЕсли;
КонецПроцедуры

//Дано Я открыл новый сеанс TestClient от имени "МойПользователь" с паролем "МойПароль"
//@ЯОткрылСеансTestClientОтИмениСПаролемИлиПодключаюУжеСуществующий(Парам01,Парам02)
&НаКлиенте
Процедура ЯОткрылСеансTestClientОтИмениСПаролемИлиПодключаюУжеСуществующий(Знач Логин = "", Знач Пароль = "") Экспорт
	
	СтрокаАутентификации = "";
	Логин = СокрЛП(Логин); 
	Пароль = СокрЛП(Пароль);
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
	
	Если Не ПустаяСтрока(Логин) Тогда 
		СтрокаАутентификации = "/N"+Логин;
		Если Найти(Логин, " ") > 0 Тогда 
			СтрокаАутентификации = "/N""" + СокрЛП(Логин)+ """";
		КонецЕсли;
		
		Если Не ПустаяСтрока(Пароль) Тогда 
			СтрокаАутентификации = СтрокаАутентификации + " /P"+Пароль;
		КонецЕсли;
	КонецЕсли;
	
	Если НЕ Ванесса.ОткрытьНовыйСеансTestClientИлиПодключитьУжеСуществующий("/out""" + ИмяВременногоФайла + """" + " "+ СтрокаАутентификации) Тогда
		ВызватьИсключение "Не смог подключить TestClient!";
	КонецЕсли;
	
КонецПроцедуры

&НаСервереБезконтекста
Процедура УдалитьВсеЭлементыСправочникаВида(ИмяСпр)
	
	Если Метаданные.Справочники[ИмяСпр].Иерархический Тогда
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	Справочник1.Ссылка
		|ИЗ
		|	Справочник.Справочник1 КАК Справочник1
		|ГДЕ
		|	ИСТИНА
		|	И НЕ Справочник1.ЭтоГруппа";
		
		
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник1",ИмяСпр);	
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ОбъектСпр = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
			ОбъектСпр.Удалить();
		КонецЦикла;
		
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	Справочник1.Ссылка
		|ИЗ
		|	Справочник.Справочник1 КАК Справочник1
		|ГДЕ
		|	ИСТИНА
		|	И Справочник1.ЭтоГруппа";
		
		
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник1",ИмяСпр);	
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ОбъектСпр = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
			ОбъектСпр.Удалить();
		КонецЦикла;
	Иначе
		
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	Справочник1.Ссылка
		|ИЗ
		|	Справочник.Справочник1 КАК Справочник1";
		
		
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник1",ИмяСпр);	
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ОбъектСпр = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
			ОбъектСпр.Удалить();
		КонецЦикла;
	КонецЕсли;	 
	
КонецПроцедуры

&НаСервере
Функция ПолучитьМакетСервер(ИмяМакета)
	ОбъектСервер = РеквизитФормыВЗначение("Объект");
	Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета);
	
КонецФункции


&НаКлиенте
Процедура ЕслиНаЭкранеДиалогДаНетТоНадоНажатьНет()
	Нашли = Ложь;
	ОкноПриложения = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"),"1С:Предприятие",,1);
	Если ОкноПриложения = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	КнопкаНет = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),"Нет",,1);
	Если КнопкаНет = Неопределено Тогда
		Возврат;
	КонецЕсли;	 
	
	КнопкаНет.Нажать();
	//МассивЭлементов        = ОкноПриложения.НайтиОбъекты(Тип("ТестируемаяКнопкаФормы"));
	//
	//Если МассивЭлементов = Неопределено Тогда
	//	Возврат;
	//КонецЕсли;	 
	//
	//Если МассивЭлементов.Количество() = 0 Тогда
	//	Возврат;
	//КонецЕсли;	 
	//
	//Для каждого Кнопка Из МассивЭлементов Цикл
	//	Сообщить("Имя=" + Кнопка.Имя + ", ТекстЗаголовка=" + Кнопка.ТекстЗаголовка);
	//КонецЦикла;
	
	
	
КонецПроцедуры

&НаКлиенте
//Я закрыл все окна клиентского приложения
//@ЯЗакрылВсеОкнаКлиентскогоПриложения()
Процедура ЯЗакрылВсеОкнаКлиентскогоПриложения() Экспорт
	ОкнаПриложения = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"));
	//ОкнаПриложения = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты();
	//АктивноеОкно = КонтекстСохраняемый.ТестовоеПриложение.ПолучитьАктивноеОкно();
	//Ванесса.ПосмотретьЗначение(АктивноеОкно,Истина);
	Для каждого ОкноПриложение Из ОкнаПриложения Цикл
		//ПодчОбъекты = ОкноПриложение.ПолучитьПодчиненныеОбъекты();
		//Ванесса.ПосмотретьЗначение(ПодчОбъекты,Истина);
		Если ОкноПриложение.Основное Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если ОкноПриложение.НачальнаяСтраница Тогда
			Продолжить;
		КонецЕсли;	 
		
		Попытка
			ОкноПриложение.Закрыть();
		Исключение
			Сообщить("Не смог закрыть окно " + ОкноПриложение);
			Продолжить;
		КонецПопытки;
		
		ЕслиНаЭкранеДиалогДаНетТоНадоНажатьНет();
		
	КонецЦикла;
	
	
	//КомандныйИнтерфейс = КонтекстСохраняемый.ГлавноеОкноТестируемого.ПолучитьКомандныйИнтерфейс();
	//ПодчиненныеОбъекты = КомандныйИнтерфейс.ПолучитьПодчиненныеОбъекты();
	//ПанельОткрытых     = Неопределено;
	//Для каждого Элем Из ПодчиненныеОбъекты Цикл
	//	Если НРег(Элем.ТекстЗаголовка) = НРег("панель открытых") Тогда
	//		ПанельОткрытых = Элем;
	//	КонецЕсли;	 
	//КонецЦикла;
	//Если ПанельОткрытых = Неопределено Тогда
	//	Возврат;
	//КонецЕсли;	
	
	
	//Ванесса.ПосмотретьЗначение(ПанельОткрытых,Истина);
	
	//Ванесса.ПосмотретьЗначение(ПанельОткрытых,Истина);
	//ОткрытыеОкна = ПанельОткрытых.ПолучитьПодчиненныеОбъекты();
	//Для каждого ОткрытоеОкно Из ОткрытыеОкна Цикл
	//	//Сообщить("ОткрытоеОкно="+ОткрытоеОкно);
	//	//Ванесса.ПосмотретьЗначение(ОткрытоеОкно,Истина);
	//	//ОткрытоеОкно.Закрыть();
	//	//
	//КонецЦикла;
	//Парам.ПолучитьКомандныйИнтерфейс().ПолучитьПодчиненныеОбъекты()[2].ПолучитьПодчиненныеОбъекты()	
КонецПроцедуры


&НаКлиенте
//Я нажимаю кнопку командного интерфейса "Основная"
//@ЯНажимаюКнопкуКомандногоИнтерфейса(Парам01)
Процедура ЯНажимаюКнопкуКомандногоИнтерфейса(ИмяКнопки) Экспорт
	ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ГлавноеОкноТестируемого.ПолучитьКомандныйИнтерфейс();
	//ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ОкноПриложенияОсновноеCommandInterface;
	КнопкаКомандногоИнтерфейса = ОкноПриложенияОсновноеCommandInterface.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), ИмяКнопки,,5);
	Если КнопкаКомандногоИнтерфейса = Неопределено Тогда
		Стр = "Кнопка с заголовком <" + ИмяКнопки + "> не найдена";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	КнопкаКомандногоИнтерфейса.Нажать();
КонецПроцедуры

&НаКлиенте
//открылось окно "Справочник1"
//@ОткрылосьОкно(Парам01)
Процедура ОткрылосьОкно(ИмяОкна) Экспорт
	АктивноеОкно = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ИмяОкна, , 15);
	Если АктивноеОкно = Неопределено Тогда
		ВызватьИсключение "Окно с заголовком " + ИмяОкна + " не найдено!";
	КонецЕсли;	 
	Контекст.Вставить("АктивноеОкно",АктивноеОкно);
КонецПроцедуры

&НаКлиенте
//В форме "Справочник1" в таблице "Список" я перехожу к строке:
//@ВФормеВТаблицеЯПерехожуКСтроке(Парам01,Парам02,ТабПарам)
Процедура ВФормеВТаблицеЯПерехожуКСтроке(ИмяФормы,ИмяТЧ,ТабПарам) Экспорт
	Ванесса.ПроверитьРавенство(ТабПарам.Количество(),2,"Строка должна быть описана таблицей с двумя строками.");
	
	
	
	НужнаяФорма = НайтиФормуПоЗаголовку(ИмяФормы);
	
	Если НужнаяФорма = Неопределено Тогда
		Если НужнаяФорма = Неопределено Тогда
			Стр = "Форма с заголовком <" + ИмяФормы + "> не найдена!";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
	КонецЕсли;	 
	
	Если ИмяТЧ = "" Тогда
		ТаблицаСписок  = НужнаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"));
	Иначе	
		ТаблицаСписок  = НужнаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),, ИмяТЧ);
	КонецЕсли;	 
	
	
	
	Если ТаблицаСписок = Неопределено Тогда
		Стр = "На форме <" + ИмяФормы + "> не найдена таблица с именем <" + ИмяТЧ + ">";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	ТаблицаСписок.Активизировать();
	
	СделатьДействияПриЗаписиВидео("толькофрейм");
	
	ОписаниеСтроки = Новый Соответствие();
	
	
	Строка1    = ТабПарам[0];
	Строка2    = ТабПарам[1];
	КолКолонок = Строка1.Количество();
	
	Для Ккк = 1 По КолКолонок Цикл
		Ключ     = Строка1["Кол"+Ккк];
		Значение = Строка2["Кол"+Ккк];
		Если ТипЗнч(Значение) = Тип("Число") Тогда
			Значение = СтрЗаменить(Значение,Символы.НПП,"");
		КонецЕсли;	 
		
		//Сообщить("" + Ключ + ":" + Значение);
		
		ОписаниеСтроки.Вставить(Ключ,Значение);
	КонецЦикла;
	
	//ОписаниеСтроки.Вставить("Код", "000000001");
	//ОписаниеСтроки.Вставить("Наименование", "Тестовый Элемент 2");
	
	ОшибкаПереходВниз  = "";
	ОшибкаПереходВверх = "";
	
	ПолучилосьПерейти = Ложь;
	Попытка
		ТаблицаСписок.ПерейтиКСтроке(ОписаниеСтроки, Вычислить("НаправлениеПереходаКСтроке.Вниз"));
		ПолучилосьПерейти = Истина;
	Исключение
		ОшибкаПереходВниз = ОписаниеОшибки();
		//Сообщить("" + ОписаниеОшибки());
	КонецПопытки;
	
	
	Если НЕ ПолучилосьПерейти Тогда
		Попытка
			ТаблицаСписок.ПерейтиКСтроке(ОписаниеСтроки, Вычислить("НаправлениеПереходаКСтроке.Вверх"));
			ПолучилосьПерейти = Истина;
		Исключение
			ОшибкаПереходВверх = ОписаниеОшибки();
			//Сообщить("" + ОписаниеОшибки());
		КонецПопытки;
	КонецЕсли;	 
	
	
	Если НЕ ПолучилосьПерейти Тогда
		Стр = "Не удалось перейти к нужной строке в таблице <" + ИмяТЧ + ">";
		Сообщить(Стр);
		Если ОшибкаПереходВниз <> "" Тогда
			Сообщить("" + ОшибкаПереходВниз);
		КонецЕсли;	 
		Если ОшибкаПереходВверх <> "" Тогда
			Сообщить("" + ОшибкаПереходВверх);
		КонецЕсли;	 
		ВызватьИсключение Стр;
	КонецЕсли;	
	
	СделатьДействияПриЗаписиHTML("толькофрейм");
	
КонецПроцедуры

&НаКлиенте
//"В форме "Справочник1" в ТЧ "Список" я выбираю текущую строку"
//@ВФормеВТЧЯВыбираюТекущуюСтроку(Парам01,Парам02)
Процедура ВФормеВТЧЯВыбираюТекущуюСтроку(ИмяФормы,ИмяТЧ) Экспорт
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	ТЧ.Выбрать();
КонецПроцедуры






&НаКлиенте
//В открытой форме я открываю выпадающий список с заголовком "Реквизит1"
//@ВОткрытойФормеЯОткрываюВыпадающийСписокСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯОткрываюВыпадающийСписокСЗаголовком(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	//ОкноПриложения = ПолучитьАктивноеОкноИзКонтекста();
	//Сообщить("ОкноПриложения.Заголовок = " + ОкноПриложения.Заголовок);
	
	//ОкноПриложенияТестовыйЭлементСправочник1ФормаТестовыйЭлементСправочник1 = ОкноПриложенияТестовыйЭлементСправочник1.НайтиОбъект(Тип("ТестируемаяФорма"), "Тестовый Элемент * (Справочник1)");
	//ТекущаяФорма            = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			ТекущийВыпадающийСписок = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,ИмяРеквизита);
		Иначе	
			ТекущийВыпадающийСписок = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),ИмяРеквизита);
		КонецЕсли;	 
		
		Если ТекущийВыпадающийСписок = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		
		ТекущийВыпадающийСписок.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		
		ТекущийВыпадающийСписок.ОткрытьВыпадающийСписок();
		Контекст.Вставить("ТекущийВыпадающийСписок",ТекущийВыпадающийСписок);
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Выпадающий список с именем <" + ИмяРеквизита + "> не найден!";
		Иначе	
			Стр = "Выпадающий список с заголовком <" + ИмяРеквизита + "> не найден!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	

КонецПроцедуры

&НаКлиенте
//В открытой форме я открываю выпадающий список "Реквизит1"
//@ВОткрытойФормеЯОткрываюВыпадающийСписок(Парам01)
Процедура ВОткрытойФормеЯОткрываюВыпадающийСписок(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯОткрываюВыпадающийСписокСЗаголовком(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//В открытой форме я открываю выпадающий список с именем "Реквизит1"
//@ВОткрытойФормеЯОткрываюВыпадающийСписокСИменем(Парам01)
Процедура ВОткрытойФормеЯОткрываюВыпадающийСписокСИменем(ИмяРеквизита) Экспорт
	ВОткрытойФормеЯОткрываюВыпадающийСписокСЗаголовком(ИмяРеквизита,Истина);
КонецПроцедуры

//&НаКлиенте
////В открытой форме из выпадающего списка я выбираю "ЗначениеПеречисления1"
////@ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю(Парам01)
//Процедура ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю(ВыбираемоеЗначение) Экспорт
//	ТекущийВыпадающийСписок = Контекст.ТекущийВыпадающийСписок;
//	ТекущийВыпадающийСписок.ВыполнитьВыборИзСпискаВыбора(ВыбираемоеЗначение);
//КонецПроцедуры




&НаКлиенте
//В открытой форме я выбираю значение реквизита с заголовком "Реквизит2" из формы списка
//@ВОткрытойФормеЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(Парам01)
Процедура ВОткрытойФормеЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт

	//ОкноПриложения = ПолучитьАктивноеОкноИзКонтекста();
	////Сообщить("ОкноПриложения.Заголовок = " + ОкноПриложения.Заголовок);
	//
	//ТекущаяФорма            = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			ТекущийВыпадающийСписок = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,ИмяРеквизита);
		Иначе	
			ТекущийВыпадающийСписок = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),ИмяРеквизита);
		КонецЕсли;	 
		
		Если ТекущийВыпадающийСписок = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		
		ТекущийВыпадающийСписок.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		
		ТекущийВыпадающийСписок.Выбрать();
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Выпадающий список с именем <" + ИмяРеквизита + "> не найден!";
		Иначе	
			Стр = "Выпадающий список с заголовком <" + ИмяРеквизита + "> не найден!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	
	
	
КонецПроцедуры

&НаКлиенте
//В открытой форме я выбираю значение реквизита "Реквизит2" из формы списка
//@ВОткрытойФормеЯВыбираюЗначениеРеквизитаИзФормыСписка(Парам01)
Процедура ВОткрытойФормеЯВыбираюЗначениеРеквизитаИзФормыСписка(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры




&НаКлиенте
//В открытой форме я выбираю значение реквизита с именем "Реквизит2" из формы списка
//@ВОткрытойФормеЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка(Парам01)
Процедура ВОткрытойФормеЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка(ИмяРеквизита) Экспорт

	ВОткрытойФормеЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(ИмяРеквизита,Истина);
	
КонецПроцедуры


&НаКлиенте
//В открытой форме в поле с заголовком "Реквизит строка" я ввожу текст "тест"
//@ВОткрытойФормеВПолеСЗаголовкомЯВвожуТекст(Парам01,Парам02)
Процедура ВОткрытойФормеВПолеСЗаголовкомЯВвожуТекст(ИмяРеквизита,Текст,ИскатьПоИмени = Ложь) Экспорт

	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
		Иначе
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
		КонецЕсли;	 
		
		Если МассивЭлементов = Неопределено Тогда
			Продолжить;
			//Стр = "Элемента формы с заголовком <" + ИмяРеквизита + "> не найдено.";
			//Сообщить(Стр);
			//ВызватьИсключение Стр;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() = 0 Тогда
			Продолжить;
			//Стр = "Элемента формы с заголовком <" + ИмяРеквизита + "> не найдено.";
			//Сообщить(Стр);
			//ВызватьИсключение Стр;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() > 1  Тогда
			Сообщить("Обнаружено несколько полей с заголовком <" + ИмяРеквизита + ">");
			Ном = 0;
			Для каждого Элем Из МассивЭлементов Цикл
				Ном = Ном + 1;
				Сообщить("№" + Ном + ". Заголовок=<" + Элем.ТекстЗаголовка  + ">. Имя=<" + Элем.Имя + ">. ТекстПоля = <" + Элем.ПолучитьПредставлениеДанных() + ">");
			КонецЦикла;
			
			Стр = "Найдено более одного поля формы с заголовком <" + ИмяРеквизита + ">. Рекомендуется искать элемент по имени.";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
		ПолеРеквизит = МассивЭлементов[0];
		
		
		ПолеРеквизит.Активизировать();
		
		
		СделатьДействияПриЗаписиВидео();
		ПолеРеквизит.ВвестиТекст(Текст);
		СделатьДействияПриЗаписиHTML();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Элемента формы с именем <" + ИмяРеквизита + "> не найдено.";
		Иначе	
			Стр = "Элемента формы с заголовком <" + ИмяРеквизита + "> не найдено.";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
КонецПроцедуры

&НаКлиенте
//В открытой форме в поле "Реквизит строка" я ввожу текст "тест"
//@ВОткрытойФормеВПолеЯВвожуТекст(Парам01,Парам02)
Процедура ВОткрытойФормеВПолеЯВвожуТекст(ИмяРеквизита,Текст,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеВПолеСЗаголовкомЯВвожуТекст(ИмяРеквизита,Текст,ИскатьПоИмени);
КонецПроцедуры




&НаКлиенте
//В открытой форме в поле с именем "Реквизит строка" я ввожу текст "тест"
//@ВОткрытойФормеВПолеСИменемЯВвожуТекст(Парам01,Парам02)
Процедура ВОткрытойФормеВПолеСИменемЯВвожуТекст(ИмяРеквизита,Текст) Экспорт
	ВОткрытойФормеВПолеСЗаголовкомЯВвожуТекст(ИмяРеквизита,Текст,Истина);
КонецПроцедуры


&НаКлиенте
//В открытой форме я нажимаю на кнопку с заголовком "Записать и закрыть"
//@ВОткрытойФормеЯНажимаюНаКнопкуСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаКнопкуСЗаголовком(ИмяКнопки,ИскатьПоИмени = Ложь) Экспорт

	//ОкноПриложения         = Контекст.АктивноеОкно;
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//Сообщить("ОкноПриложения.Заголовок="+ОкноПриложения.Заголовок);
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//Сообщить("ТекущаяФорма.ТекстЗаголовка="+ТекущаяФорма.ТекстЗаголовка);
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		//Сообщить("" + ТекущаяФорма.ТекстЗаголовка);
		
		Если ИскатьПоИмени Тогда
			Кнопка       = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,ИмяКнопки);
		Иначе	
			Кнопка       = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),ИмяКнопки);
		КонецЕсли;	 
		
		Если Кнопка = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Нашли = Истина;
		
		//Если Ванесса.Объект.ИдетЗаписьВидео Тогда
		//	Кнопка.Активизировать();
		//	Ванесса.ПереместитьКурсорМышиКАктивномуОбъекту();
		//	Ванесса.ПодсветитьАктивныйЭлементФормы();
		//КонецЕсли;	 
		
		
		Прервать;
	КонецЦикла;
	
	
	Если НЕ Нашли Тогда //для модальных диалогов
		ТекущаяФорма = НайтиТекущуюФорму();
		
		Если ИскатьПоИмени Тогда
			Кнопка       = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,ИмяКнопки);
		Иначе	
			Кнопка       = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),ИмяКнопки);
		КонецЕсли;	 
		
		Если Кнопка <> Неопределено Тогда
			Нашли = Истина;
		КонецЕсли;	 
		
	КонецЕсли;	 
	
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Кнопка с именем <" + ИмяКнопки + "> не найдена!";
		Иначе	
			Стр = "Кнопка с заголовком <" + ИмяКнопки + "> не найдена!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	ПолучилосьАктивизировать = АктивизироватьКнопку(Кнопка,ТекущаяФорма);
	
	Если ПолучилосьАктивизировать Тогда
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
	КонецЕсли;	 
	
	
	Кнопка.Нажать();
	//Кнопка       = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),ИмяКнопки);
	//
	//Если Кнопка = Неопределено Тогда
	//	Стр = "Кнопка с заголовком <" + ИмяКнопки + "> не найдена!";
	//	Сообщить(Стр);
	//	ВызватьИсключение Стр;
	//КонецЕсли;	 
	//
	//Кнопка.Нажать();
	
	//Ванесса.ПосмотретьЗначение(ТекущаяФорма,Истина);
	
	//ПолеТабДок = ТекущаяФорма.ПолучитьПодчиненныеОбъекты()[4];
	//Адрес = ПолеТабДок.ПолучитьАдресТекущейОбласти();
	//Сообщить("Адрес="+Адрес);
	//
	//
	////ПолеТабДок.УстановитьТекущуюОбласть("R1C1:R10000C10000");
	////Адрес = ПолеТабДок.ПолучитьАдресТекущейОбласти();
	////Сообщить("Адрес="+Адрес);
	//
	//ПолеТабДок.УстановитьТекущуюОбласть("R4C2:R4C3");
	//ТекстОбласти = ПолеТабДок.ПолучитьТекстОбласти("R4C2:R4C3");
	//Ванесса.ПосмотретьЗначение(ПолеТабДок,Истина);
	
КонецПроцедуры

&НаКлиенте
//В открытой форме я нажимаю на кнопку "Записать и закрыть"
//@ВОткрытойФормеЯНажимаюНаКнопку(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаКнопку(ИмяКнопки,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюНаКнопкуСЗаголовком(ИмяКнопки,ИскатьПоИмени);
КонецПроцедуры







&НаКлиенте
Процедура НажтиеНаКнопку()
	Ванесса.ПереместитьКурсорМышиКАктивномуОбъекту();
	Ванесса.ПодсветитьАктивныйЭлементФормы();
	ТекущийЭлементДляРаботы.Нажать();
	Ванесса.ПродолжитьВыполнениеШагов();
КонецПроцедуры

Функция ЭлементСправочника1СИменемЗаписалсяКорректноСервер(Наименование)
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Справочник1.Ссылка
		|ИЗ
		|	Справочник.Справочник1 КАК Справочник1
		|ГДЕ
		|	Справочник1.Наименование = &Наименование";
	
	Запрос.УстановитьПараметр("Наименование", Наименование);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	Если ВыборкаДетальныеЗаписи.Количество() = 0 Тогда
		Возврат Ложь;
	КонецЕсли;	 
	
	
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Ссылка = ВыборкаДетальныеЗаписи.Ссылка;
		Если Ссылка.Реквизит1 <> Перечисления.Перечисление1.ЗначениеПеречисления1 Тогда
			Сообщить("Реквизит1: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если Ссылка.Реквизит2 <> Справочники.Справочник2.НайтиПоНаименованию("ТестовыйЭлемент21") Тогда
			Сообщить("Реквизит2: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если Ссылка.РеквизитЧисло <> 12.34 Тогда
			Сообщить("РеквизитЧисло: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если Ссылка.РеквизитДата <> '19810408' Тогда
			Сообщить("РеквизитДата: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если СокрЛП(Ссылка.РеквизитСтрока) <> "тест" Тогда
			Сообщить("РеквизитСтрока: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если НЕ Ссылка.РеквизитБулево Тогда
			Сообщить("РеквизитБулево: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если Ссылка.РеквизитПереключатель <> 1 Тогда
			Сообщить("РеквизитПереключатель: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	
		
		СтрокаТЧ = Ссылка.ТабличнаяЧасть1[0];
		
		Если СтрокаТЧ.РеквизитЧисло <> 56.78 Тогда
			Сообщить("ТЧ Реквизит1: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если СокрЛП(СтрокаТЧ.РеквизитСтрока) <> "ТестСтрока" Тогда
			Сообщить("ТЧ РеквизитСтрока: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если СтрокаТЧ.РеквизитДата <> '19830911' Тогда
			Сообщить("ТЧ РеквизитДата: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если СтрокаТЧ.РеквизитСправочник <> Справочники.Справочник2.НайтиПоНаименованию("ТестовыйЭлемент21") Тогда
			Сообщить("ТЧ РеквизитСправочник: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если НЕ СтрокаТЧ.РеквизитБулево Тогда
			Сообщить("ТЧ РеквизитБулево: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
		Если СтрокаТЧ.РеквизитСправочникВыборИзФормыСписка <> Справочники.Справочник2.НайтиПоНаименованию("ТестовыйЭлемент21") Тогда
			Сообщить("ТЧ РеквизитСправочникВыборИзФормыСписка: Значение не верное!");
			Возврат Ложь;
		КонецЕсли;	 
	КонецЦикла;
	
	Возврат Истина;
КонецФункции	

&НаКлиенте
//Элемент Справочника1 с именем "Тестовый Элемент 1" записался корректно
//@ЭлементСправочника1СИменемЗаписалсяКорректно(Парам01)
Процедура ЭлементСправочника1СИменемЗаписалсяКорректно(Наименование) Экспорт
	Ванесса.ПроверитьРавенство(ЭлементСправочника1СИменемЗаписалсяКорректноСервер(Наименование),Истина,"Записался корректный элемент.");
КонецПроцедуры





&НаКлиенте
//В открытой форме я изменяю флаг с заголовком "Реквизит булево"
//@ВОткрытойФормеЯИзменяюФлагСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯИзменяюФлагСЗаголовком(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		
		Если ИскатьПоИмени Тогда
			ПолеРеквизит = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
		Иначе
			ПолеРеквизит = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
		КонецЕсли;	 
		
		
		Если ПолеРеквизит = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		ПолеРеквизит.Активизировать();
		СделатьДействияПриЗаписиВидео();
		ПолеРеквизит.УстановитьОтметку();
		СделатьДействияПриЗаписиHTML();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Флаг с именем <" + ИмяРеквизита + "> не найден!";
		Иначе	
			Стр = "Флаг с заголовком <" + ИмяРеквизита + "> не найден!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 

	
КонецПроцедуры

&НаКлиенте
//В открытой форме я изменяю флаг "Реквизит булево"
//@ВОткрытойФормеЯИзменяюФлаг(Парам01)
Процедура ВОткрытойФормеЯИзменяюФлаг(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯИзменяюФлагСЗаголовком(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//В открытой форме я изменяю флаг с именем "Реквизит булево"
//@ВОткрытойФормеЯИзменяюФлагСИменем(Парам01)
Процедура ВОткрытойФормеЯИзменяюФлагСИменем(ИмяРеквизита) Экспорт
	ВОткрытойФормеЯИзменяюФлагСЗаголовком(ИмяРеквизита,Истина)
КонецПроцедуры



&НаКлиенте
//В открытой форме я меняю значение переключателя с заголовком "Реквизит переключатель" на "Первое значение"
//@ВОткрытойФормеЯМеняюЗначениеПереключателяСЗаголовкомНа(Парам01,Парам02)
Процедура ВОткрытойФормеЯМеняюЗначениеПереключателяСЗаголовкомНа(ИмяРеквизита,Значение,ИскатьПоИмени = Ложь) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		
		Если ИскатьПоИмени Тогда
			ПолеРеквизит           = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
		Иначе
			ПолеРеквизит           = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
		КонецЕсли;	 
		
		Если ПолеРеквизит = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		
		ПолеРеквизит.Активизировать();
		СделатьДействияПриЗаписиВидео();
		ПолеРеквизит.ВыбратьВариант(Значение);
		СделатьДействияПриЗаписиHTML();
		
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Переключатель с именем <" + ИмяРеквизита + "> не найден!";
		Иначе	
			Стр = "Переключатель с заголовком <" + ИмяРеквизита + "> не найден!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
		
	
	
КонецПроцедуры

&НаКлиенте
//В открытой форме я меняю значение переключателя "Реквизит переключатель" на "Первое значение"
//@ВОткрытойФормеЯМеняюЗначениеПереключателяНа(Парам01,Парам02)
Процедура ВОткрытойФормеЯМеняюЗначениеПереключателяНа(ИмяРеквизита,Значение,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯМеняюЗначениеПереключателяСЗаголовкомНа(ИмяРеквизита,Значение,ИскатьПоИмени);
КонецПроцедуры


&НаКлиенте
//В открытой форме я меняю значение переключателя с именем "Реквизит переключатель" на "Первое значение"
//@ВОткрытойФормеЯМеняюЗначениеПереключателяСИменемНа(Парам01,Парам02)
Процедура ВОткрытойФормеЯМеняюЗначениеПереключателяСИменемНа(ИмяРеквизита,Значение) Экспорт
	ВОткрытойФормеЯМеняюЗначениеПереключателяСЗаголовкомНа(ИмяРеквизита,Значение,Истина);	
КонецПроцедуры



&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я нажимаю на кнопку с заголовком "Добавить"
//@ВОткрытойФормеВТЧЯНажимаюНаКнопкуСЗаголовком(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯНажимаюНаКнопкуСЗаголовком(ИмяТЧ,ИмяКнопки,ИскатьПоИмени = Ложь) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	
	Нашли = Ложь;
	НашлиТЧ = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
		Если ТЧ = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		НашлиТЧ = Истина;
		
		Если ИскатьПоИмени Тогда
			Кнопка                 = ТЧ.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),, ИмяКнопки);
		Иначе	
			Кнопка                 = ТЧ.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), ИмяКнопки);
		КонецЕсли;	 
		
		Если Кнопка = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		ПолучилосьАктивизировать = АктивизироватьКнопку(Кнопка,ТекущаяФорма,ТЧ);
		Если ПолучилосьАктивизировать Тогда
			СделатьДействияПриЗаписиВидео();
			СделатьДействияПриЗаписиHTML();
		КонецЕсли;	 
		
		Кнопка.Нажать();
	
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	
	Если Не НашлиТЧ Тогда
		Стр = "ТЧ с именем <" + ИмяТЧ + "> не найдена!";
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Кнопка с именем <" + ИмяКнопки + "> не найдена!";
		Иначе	
			Стр = "Кнопка с заголовком <" + ИмяКнопки + "> не найдена!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я нажимаю на кнопку "Добавить"
//@ВОткрытойФормеВТЧЯНажимаюНаКнопку(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯНажимаюНаКнопку(ИмяТЧ,ИмяКнопки,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеВТЧЯНажимаюНаКнопкуСЗаголовком(ИмяТЧ,ИмяКнопки,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я нажимаю на кнопку с именем "Добавить"
//@ВОткрытойФормеВТЧЯНажимаюНаКнопкуСИменем(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯНажимаюНаКнопкуСИменем(ИмяТЧ,ИмяКнопки) Экспорт
	ВОткрытойФормеВТЧЯНажимаюНаКнопкуСЗаголовком(ИмяТЧ,ИмяКнопки,Истина);
КонецПроцедуры



&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" в поле с заголовком "Реквизит число" я ввожу текст "54,00"
//@ВОткрытойФормеВТЧВПолеСЗаголовкомЯВвожуТекст(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧВПолеСЗаголовкомЯВвожуТекст(ИмяТЧ,ИмяРеквизита,Текст,ИскатьПоИмени = Ложь) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	Если ИскатьПоИмени Тогда
		ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
	Иначе	
		ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	КонецЕсли;	 
	
	Если ПолеРеквизит = Неопределено Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Поле с именем <" + ИмяРеквизита + "> не найдено!";
		Иначе	
			Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		КонецЕсли;	 
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	ПолеРеквизит.Активизировать();
	
	ТаблицаВРежимеРедактирования = ТЧ.ТекущийРежимРедактирование();
	Если Не ТаблицаВРежимеРедактирования Тогда
		ТЧ.Выбрать();
	КонецЕсли;	 
	
	СделатьДействияПриЗаписиВидео();
	ПолеРеквизит.ВвестиТекст(Текст);
	СделатьДействияПриЗаписиHTML();
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" в поле "Реквизит число" я ввожу текст "54,00"
//@ВОткрытойФормеВТЧВПолеЯВвожуТекст(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧВПолеЯВвожуТекст(ИмяТЧ,ИмяРеквизита,Текст) Экспорт
	ВОткрытойФормеВТЧВПолеСЗаголовкомЯВвожуТекст(ИмяТЧ,ИмяРеквизита,Текст);
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" в поле с именем "Реквизит число" я ввожу текст "54,00"
//@ВОткрытойФормеВТЧВПолеСИменемЯВвожуТекст(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧВПолеСИменемЯВвожуТекст(ИмяТЧ,ИмяРеквизита,Текст) Экспорт
	ВОткрытойФормеВТЧВПолеСЗаголовкомЯВвожуТекст(ИмяТЧ,ИмяРеквизита,Текст,Истина);
КонецПроцедуры






&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" из выпадающего списка с заголовком "Реквизит справочник" я выбираю "ТестовыйЭлемент21"
//@ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираю(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираю(ИмяТЧ,ИмяРеквизита,ВыбираемоеЗначение) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	Если ПолеРеквизит = Неопределено Тогда
		Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	ПолеРеквизит.Активизировать();
	СделатьДействияПриЗаписиВидео("толькомышь");
	СделатьДействияПриЗаписиHTML("толькомышь");
	
	ПолеРеквизит.ВыполнитьВыборИзСпискаВыбора(ВыбираемоеЗначение);
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" из выпадающего списка "Реквизит справочник" я выбираю "ТестовыйЭлемент21"
//@ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираю(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираю(ИмяТЧ,ИмяРеквизита,ВыбираемоеЗначение) Экспорт
	ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираю(ИмяТЧ,ИмяРеквизита,ВыбираемоеЗначение);
КонецПроцедуры






&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" из выпадающего списка с заголовком "Реквизит справочник" я выбираю "ТестовыйЭлемент21" с выбором
//@ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираюСВыбором(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираюСВыбором(ИмяТЧ,ИмяРеквизита,ВыбираемоеЗначение) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	Если ПолеРеквизит = Неопределено Тогда
		Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	ПолеРеквизит.Активизировать();
	СделатьДействияПриЗаписиВидео("толькомышь");
	СделатьДействияПриЗаписиHTML("толькомышь");
	
	
	ПолеРеквизит.Выбрать();
	ПолеРеквизит.ОжидатьФормированияВыпадающегоСписка();
	ПолеРеквизит.ВыполнитьВыборИзСпискаВыбора(ВыбираемоеЗначение);
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" из выпадающего списка "Реквизит справочник" я выбираю "ТестовыйЭлемент21" с выбором
//@ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираюСВыбором(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТЧИзВыпадающегоСпискаЯВыбираюСВыбором(ИмяТЧ,ИмяРеквизита,ВыбираемоеЗначение) Экспорт
	ВОткрытойФормеВТЧИзВыпадающегоСпискаСЗаголовкомЯВыбираюСВыбором(ИмяТЧ,ИмяРеквизита,ВыбираемоеЗначение);
КонецПроцедуры




&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я изменяю флаг с заголовком "Реквизит булево"
//@ВОткрытойФормеВТЧЯИзменяюФлагСЗаголовком(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯИзменяюФлагСЗаголовком(ИмяТЧ,ИмяРеквизита) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	Если ПолеРеквизит = Неопределено Тогда
		Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	ПолеРеквизит.Активизировать();
	//тут нет активного контрола
	//СделатьДействияПриЗаписиВидео();
	ПолеРеквизит.УстановитьОтметку();
	//СделатьДействияПриЗаписиHTML();
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я изменяю флаг "Реквизит булево"
//@ВОткрытойФормеВТЧЯИзменяюФлаг(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯИзменяюФлаг(ИмяТЧ,ИмяРеквизита) Экспорт
	ВОткрытойФормеВТЧЯИзменяюФлагСЗаголовком(ИмяТЧ,ИмяРеквизита);
КонецПроцедуры






&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я выбираю значение реквизита с заголовком "Реквизит справочник выбор из формы списка" из формы списка
//@ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(ИмяТЧ,ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	Если ИскатьПоИмени Тогда
		ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
	Иначе	
		ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	КонецЕсли;	 
	
	Если ПолеРеквизит = Неопределено Тогда
		Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	ПолеРеквизит.Активизировать();
	СделатьДействияПриЗаписиВидео();
	СделатьДействияПриЗаписиHTML();
	
	ТаблицаВРежимеРедактирования = ТЧ.ТекущийРежимРедактирование();
	Если Не ТаблицаВРежимеРедактирования Тогда
		ТЧ.Выбрать();
	КонецЕсли;	 
	
	ПолеРеквизит.Выбрать();
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я выбираю значение реквизита "Реквизит справочник выбор из формы списка" из формы списка
//@ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаИзФормыСписка(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаИзФормыСписка(ИмяТЧ,ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(ИмяТЧ,ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры







&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я выбираю значение реквизита с именем "Реквизит справочник выбор из формы списка" из формы списка
//@ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСИменемИзФормыСписка(ИмяТЧ,ИмяРеквизита) Экспорт
	ВОткрытойФормеВТЧЯВыбираюЗначениеРеквизитаСЗаголовкомИзФормыСписка(ИмяТЧ,ИмяРеквизита,Истина);
КонецПроцедуры


&НаКлиенте
//В форме "Справочник1" в ТЧ "ТабличнаяЧасть1" я завершаю редактирование строки
//@ВФормеВТЧЯЗавершаюРедактированиеСтроки(Парам01,Парам02)
Процедура ВФормеВТЧЯЗавершаюРедактированиеСтроки(ИмяФормы,ИмяТЧ) Экспорт
	//ОкноПриложения         = ПолучитьАктивноеОкноИзКонтекста();
	//ТекущаяФорма           = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
	//ТЧ                     = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТЧ);
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	ТЧ.ЗакончитьРедактированиеСтроки(Ложь);
КонецПроцедуры




&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я нажимаю кнопку выбора у реквизита с заголовком "Реквизит1"
//@ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизитаСЗаголовком(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизитаСЗаголовком(ИмяТЧ,ИмяРеквизита) Экспорт
	ТЧ                     = НайтиТЧПоИмени(ИмяТЧ);
	
	ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	Если ПолеРеквизит = Неопределено Тогда
		Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	ПолеРеквизит.Активизировать();
	СделатьДействияПриЗаписиВидео();
	СделатьДействияПриЗаписиHTML();
	ПолеРеквизит.Выбрать();
КонецПроцедуры

&НаКлиенте
//В открытой форме в ТЧ "ТабличнаяЧасть1" я нажимаю кнопку выбора у реквизита "Реквизит1"
//@ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизита(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизита(ИмяТЧ,ИмяРеквизита) Экспорт
	ВОткрытойФормеВТЧЯНажимаюКнопкуВыбораУРеквизитаСЗаголовком(ИмяТЧ,ИмяРеквизита);
КонецПроцедуры






&НаКлиенте
//И     В открытой форме в ТЧ  "Список" я перехожу на одну строку вниз
//@ВОткрытойФормеВТЧЯПерехожуНаОднуСтрокуВниз(Парам01)
Процедура ВОткрытойФормеВТЧЯПерехожуНаОднуСтрокуВниз(ИмяТЧ) Экспорт
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	ТЧ.ПерейтиКСледующейСтроке();
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПроверитьЗначениеРеквизитаСправочника(ИмяСпр,Наименование,ИмяРек,СтроковокПредставление)
	Элем = Справочники[ИмяСпр].НайтиПоНаименованию(Наименование,Истина);
	Если Не ЗначениеЗаполнено(Элем) Тогда
		Возврат Ложь;
	КонецЕсли;	 
	
	Если СокрЛП(Элем[ИмяРек]) <> СтроковокПредставление Тогда
		Возврат Ложь;
	КонецЕсли;	 
	
	Возврат Истина;
КонецФункции	

&НаКлиенте
//И     Есть элемент справочника "Справочник1" с наименованием "Тест" и  реквизитом "Реквизит2" равным "Группа2Элем2"
//@ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным(Парам01,Парам02,Парам03,Парам04)
Процедура ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным(ИмяСпр,Наименование,ИмяРек,СтроковокПредставление) Экспорт
	Ванесса.ПроверитьРавенство(ПроверитьЗначениеРеквизитаСправочника(ИмяСпр,Наименование,ИмяРек,СтроковокПредставление),Истина,"Не нашел значение реквизита у спр: ИмяСпр=" + ИмяСпр + ", Наименование=" + Наименование + ", ИмяРек=" + ИмяРек + ", СтроковокПредставление=" + СтроковокПредставление);
КонецПроцедуры





&НаКлиенте
//И     В открытой форме я перехожу к закладке с заголовком "Вспомогательная"
//@ВОткрытойФормеЯПерехожуКЗакладкеСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯПерехожуКЗакладкеСЗаголовком(ИмяЗакладки,ИскатьПоИмени = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		
		Если ИскатьПоИмени Тогда
			ПолеЗакладка           = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяГруппаФормы"),, ИмяЗакладки);
		Иначе
			ПолеЗакладка           = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяГруппаФормы"), ИмяЗакладки);
		КонецЕсли;	 
		
		Если ПолеЗакладка = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		//Ванесса.ПосмотретьЗначение(ТекущаяФорма,Истина);
		
		ПолеЗакладка.Активизировать();
		//СделатьДействияПриЗаписиВидео();
		//СделатьДействияПриЗаписиHTML();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Закладка с именем <" + ИмяЗакладки + "> не найдена!";
		Иначе	
			Стр = "Закладка с заголовком <" + ИмяЗакладки + "> не найдена!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я перехожу к закладке "Вспомогательная"
//@ВОткрытойФормеЯПерехожуКЗакладке(Парам01)
Процедура ВОткрытойФормеЯПерехожуКЗакладке(ИмяЗакладки,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯПерехожуКЗакладкеСЗаголовком(ИмяЗакладки,ИскатьПоИмени);
КонецПроцедуры







&НаКлиенте
//И     В открытой форме я перехожу к закладке с именем "Вспомогательная"
//@ВОткрытойФормеЯПерехожуКЗакладкеСИменем(Парам01)
Процедура ВОткрытойФормеЯПерехожуКЗакладкеСИменем(ИмяЗакладки) Экспорт
	ВОткрытойФормеЯПерехожуКЗакладкеСЗаголовком(ИмяЗакладки,Истина);
КонецПроцедуры






&НаКлиенте
//И     В открытой форме я сворачиваю группу с заголовком "СворачиваемаяГруппа"
//@ВОткрытойФормеЯСворачиваюГруппуСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯСворачиваюГруппуСЗаголовком(ИмяГруппы,ИскатьПоИмени = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			Группа        = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяГруппаФормы"),, ИмяГруппы);
		Иначе	
			Группа        = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяГруппаФормы"), ИмяГруппы);
		КонецЕсли;	 
		
		Если Группа = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Группа.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		Группа.Свернуть();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Группа с именем <" + ИмяГруппы + "> не найдена!";
		Иначе	
			Стр = "Группа с заголовком <" + ИмяГруппы + "> не найдена!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я сворачиваю группу "СворачиваемаяГруппа"
//@ВОткрытойФормеЯСворачиваюГруппу(Парам01)
Процедура ВОткрытойФормеЯСворачиваюГруппу(ИмяГруппы,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯСворачиваюГруппуСЗаголовком(ИмяГруппы,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//И     В открытой форме я сворачиваю группу с именем "СворачиваемаяГруппа"
//@ВОткрытойФормеЯСворачиваюГруппуСИменем(Парам01)
Процедура ВОткрытойФормеЯСворачиваюГруппуСИменем(ИмяГруппы) Экспорт
	ВОткрытойФормеЯСворачиваюГруппуСЗаголовком(ИмяГруппы,Истина);	
КонецПроцедуры



&НаКлиенте
//И     В открытой форме я разворачиваю группу с заголовком "СворачиваемаяГруппа"
//@ВОткрытойФормеЯРазворачиваюГруппуСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯРазворачиваюГруппуСЗаголовком(ИмяГруппы,ИскатьПоИмени = Ложь) Экспорт
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			Группа        = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяГруппаФормы"),, ИмяГруппы);
		Иначе
			Группа        = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяГруппаФормы"), ИмяГруппы);
		КонецЕсли;	 
		
		Если Группа = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Группа.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		Группа.Развернуть();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Группа с именем <" + ИмяГруппы + "> не найдена!";
		Иначе	
			Стр = "Группа с заголовком <" + ИмяГруппы + "> не найдена!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я разворачиваю группу "СворачиваемаяГруппа"
//@ВОткрытойФормеЯРазворачиваюГруппу(Парам01)
Процедура ВОткрытойФормеЯРазворачиваюГруппу(ИмяГруппы,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯРазворачиваюГруппуСЗаголовком(ИмяГруппы,ИскатьПоИмени);
КонецПроцедуры







&НаКлиенте
//И     В открытой форме я разворачиваю группу с именем "СворачиваемаяГруппа"
//@ВОткрытойФормеЯРазворачиваюГруппуСИменем(Парам01)
Процедура ВОткрытойФормеЯРазворачиваюГруппуСИменем(ИмяГруппы) Экспорт
	ВОткрытойФормеЯРазворачиваюГруппуСЗаголовком(ИмяГруппы,Истина);
КонецПроцедуры



&НаКлиенте
//И     В открытой форме я нажимаю на гиперссылку с заголовком "Гиперссылка"
//@ВОткрытойФормеЯНажимаюНаГиперссылкуСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаГиперссылкуСЗаголовком(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		
		Если ИскатьПоИмени  Тогда
			ПолеГиперссылка = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,ИмяРеквизита);
			Если ПолеГиперссылка = Неопределено Тогда
				ПолеГиперссылка = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяДекорацияФормы"),,ИмяРеквизита);
			КонецЕсли;	 
		Иначе
			ПолеГиперссылка = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),ИмяРеквизита);
			Если ПолеГиперссылка = Неопределено Тогда
				ПолеГиперссылка = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяДекорацияФормы"),ИмяРеквизита);
			КонецЕсли;	 
		КонецЕсли;	 
		
		Если ПолеГиперссылка = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		ПолеГиперссылка.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		ПолеГиперссылка.Нажать();
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Гиперссылка с именем <" + ИмяРеквизита + "> не найдена!";
		Иначе	
			Стр = "Гиперссылка с заголовком <" + ИмяРеквизита + "> не найдена!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 

		
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я нажимаю на гиперссылку "Гиперссылка"
//@ВОткрытойФормеЯНажимаюНаГиперссылку(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаГиперссылку(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюНаГиперссылкуСЗаголовком(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//И     В открытой форме я нажимаю на гиперссылку с именем "Гиперссылка"
//@ВОткрытойФормеЯНажимаюНаГиперссылкуСИменем(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаГиперссылкуСИменем(ИмяРеквизита) Экспорт
	ВОткрытойФормеЯНажимаюНаГиперссылкуСЗаголовком(ИмяРеквизита,Истина);
КонецПроцедуры



&НаКлиенте
//Тогда элемент формы с именем "Наименование" стал равен "111"
//@ЭлементФормыСИменемСталРавен(Парам01,Парам02)
Процедура ЭлементФормыСИменемСталРавен(ИмяЭлемента,СтроковоеПредставление) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		
		ЭлементФормы = ТекущаяФорма.НайтиОбъект(,,ИмяЭлемента);
		Если ЭлементФормы = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		ПредставлениеДанных = ЭлементФормы.ПолучитьПредставлениеДанных();
		
		Если ПредставлениеДанных <> СтроковоеПредставление Тогда
			ВызватьИсключение "Для элемента формы " + ИмяЭлемента + " текущее значение равно " + ПредставлениеДанных + ", а ожидали " + СтроковоеПредставление;
		КонецЕсли;	 
	
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Стр = "Элемент формы сылка с именем <" + ИмяЭлемента + "> не найден!";
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
КонецПроцедуры

&НаКлиенте
Функция ПолучитьСтрокиИзТаблицыTestClient(ТЧ)
	ТЧ.ПерейтиКПервойСтроке();//чтобы проверить, что строки вообще есть
	ТекЭлемент = ТЧ.ПолучитьТекстЯчейки();//чтобы проверить, что строки вообще есть
	
	ТЧ.ВыделитьВсеСтроки();
	ЗначениеТЧ = ТЧ.ПолучитьВыделенныеСтроки();
	Возврат ЗначениеТЧ;
КонецФункции	

&НаКлиенте
//И     таблица формы с именем ""ТабличнаяЧасть1"" стала равной:
//@ТаблицаФормыСИменемСталаРавной(Парам01,ТабПарам)
Процедура ТаблицаФормыСИменемСталаРавной(ИмяТЧ,ТабПарам) Экспорт
	ТЧ =  НайтиТЧПоИмени(ИмяТЧ);
	//ТЧ.Активизировать();
	
	
	ЗначениеТЧ = ПолучитьСтрокиИзТаблицыTestClient(ТЧ);
	
	//ПромСтрук = Новый Структура;
	//ПромСтрук.Вставить("ТабПарам",ТабПарам);
	//ПромСтрук.Вставить("ЗначениеТЧ",ЗначениеТЧ);
	//Ванесса.ПосмотретьЗначение(ПромСтрук,Истина);
	
	КолСтрок = ТабПарам.Количество()-1;//без шапки
	Если ЗначениеТЧ.Количество() <> КолСтрок Тогда
		ВызватьИсключение "ТЧ " + ИмяТЧ + " не соответствует эталону. Ожидали " + КолСтрок + " строк, а в ней " + ЗначениеТЧ.Количество() + " строк.";
	КонецЕсли;	 
	
	
	СтрокаШапки = ТабПарам[0];
	
	Для Ккк = 1 По ТабПарам.Количество()-1 Цикл //в первой строке шапка
		СтрСтарое  = ТабПарам[Ккк];
		СтрНовое   = ЗначениеТЧ[Ккк-1];
		
		Для каждого Колонка Из СтрокаШапки Цикл
			ИмяКолонкиСтарое = СтрокаШапки[Колонка.Ключ];
			
			
			ЗначСтарое = СтрСтарое[Колонка.Ключ];
			Если ЗначСтарое = "*" Тогда
				Продолжить;
			КонецЕсли;	 
			
			ЗначНовое  = СтрНовое[ИмяКолонкиСтарое];
			
			Если ЗначНовое <> ЗначСтарое Тогда
				ВызватьИсключение "ТЧ " + ИмяТЧ + ". Строка № " + (Ккк) + ". Колонка " + ИмяКолонкиСтарое + ". Ожидали " + ЗначСтарое + ", а получили " + ЗначНовое;
			КонецЕсли;	 
		КонецЦикла;
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
//Тогда таблица формы с именем "ТабличнаяЧасть1" содержит изменения:
//@ТаблицаФормыСИменемСталаРавной(Парам01,ТабПарам)
Процедура ТаблицаФормыСИменемСодержитИзменения(ИмяТЧ,ТабПарам) Экспорт
	ТЧ =  НайтиТЧПоИмени(ИмяТЧ);
	//ТЧ.Активизировать();
	
	ЗначениеТЧ = ПолучитьСтрокиИзТаблицыTestClient(ТЧ);
	
	КолСтрок = ТабПарам.Количество()-1;//без шапки
	Если ЗначениеТЧ.Количество() <> КолСтрок Тогда
		ВызватьИсключение "ТЧ " + ИмяТЧ + " не соответствует эталону. Ожидали " + КолСтрок + " строк, а в ней " + ЗначениеТЧ.Количество() + " строк.";
	КонецЕсли;	 
	
	
	СтрокаШапки = ТабПарам[0];
	
	Для Ккк = 1 По ТабПарам.Количество()-1 Цикл //в первой строке шапка
		СтрСтарое  = ТабПарам[Ккк];
		СтрНовое   = ЗначениеТЧ[Ккк-1];
		
		Для каждого Колонка Из СтрокаШапки Цикл
			ИмяКолонкиСтарое = СтрокаШапки[Колонка.Ключ];
			
			
			ЗначСтарое = СтрСтарое[Колонка.Ключ];
			Если ЗначСтарое = "*" Тогда
				Продолжить;
			КонецЕсли;	 
			
			ЗначНовое  = СтрНовое[ИмяКолонкиСтарое];
			
			Если ЗначНовое <> ЗначСтарое Тогда
				ВызватьИсключение "ТЧ " + ИмяТЧ + ". Строка № " + (Ккк) + ". Колонка " + ИмяКолонкиСтарое + ". Ожидали " + ЗначСтарое + ", а получили " + ЗначНовое;
			КонецЕсли;	 
		КонецЦикла;
	КонецЦикла;
	
КонецПроцедуры

//окончание текста модуля


&НаКлиенте
//Когда В панели разделов я выбираю "Склады"
//@ВПанелиРазделовЯВыбираю(Парам01)
Процедура ВПанелиРазделовЯВыбираю(ИмяКнопки) Экспорт
	ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ГлавноеОкноТестируемого.ПолучитьКомандныйИнтерфейс();
	//ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ОкноПриложенияОсновноеCommandInterface;
	ПодчиненныеОбъекты = ОкноПриложенияОсновноеCommandInterface.ПолучитьПодчиненныеОбъекты();
	ПанельРазделов = Неопределено;
	Для каждого Элем Из ПодчиненныеОбъекты Цикл
		Если НРег(Элем.ТекстЗаголовка) = НРег("Панель разделов") Тогда
			ПанельРазделов = Элем;
		КонецЕсли;	 
	КонецЦикла;
	
	Если ПанельРазделов = Неопределено Тогда
		ВызватьИсключение "Не нашли панель разделов!";
	КонецЕсли;	 
	
	
	КнопкаКомандногоИнтерфейса = ПанельРазделов.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), ИмяКнопки,,10);
	Если КнопкаКомандногоИнтерфейса = Неопределено Тогда
		Стр = "Кнопка панели разделов <" + ИмяКнопки + "> не найдена!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	КнопкаКомандногоИнтерфейса.Нажать();
	
	//Ванесса.ПосмотретьЗначение(ПодчиненныеОбъекты,Истина);
	//КнопкаКомандногоИнтерфейса.Нажать();
КонецПроцедуры

&НаКлиенте
//И     В панели функций я выбираю "Склады"
//@ВПанелиФункцийЯВыбираю(Парам01)
Процедура ВПанелиФункцийЯВыбираю(ИмяКнопки) Экспорт
	ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ГлавноеОкноТестируемого.ПолучитьКомандныйИнтерфейс();
	//ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ОкноПриложенияОсновноеCommandInterface;
	ПодчиненныеОбъекты = ОкноПриложенияОсновноеCommandInterface.ПолучитьПодчиненныеОбъекты();
	//Ванесса.ПосмотретьЗначение(ПодчиненныеОбъекты,Истина);
	МенюФункций                = Неопределено;
	МенюФункцийТекущегоРаздела = Неопределено;
	Для каждого Элем Из ПодчиненныеОбъекты Цикл
		Если НРег(Элем.ТекстЗаголовка) = НРег("Меню функций") Тогда
			МенюФункций = Элем;
		КонецЕсли;	 
		Если НРег(Элем.ТекстЗаголовка) = НРег("Панель функций текущего раздела") Тогда
			МенюФункцийТекущегоРаздела = Элем;
			Прервать;
		КонецЕсли;	 
	КонецЦикла;
	
	Если (МенюФункций = Неопределено) и (МенюФункцийТекущегоРаздела = Неопределено) Тогда
		ВызватьИсключение "Не нашли меню функций раздела!";
	КонецЕсли;	 
	
	
	Если МенюФункций <> Неопределено Тогда
		КнопкаКомандногоИнтерфейса = МенюФункций.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), ИмяКнопки,,10);
	КонецЕсли;	 
	
	Если КнопкаКомандногоИнтерфейса = Неопределено Тогда
		Если МенюФункцийТекущегоРаздела <> Неопределено Тогда
			КнопкаКомандногоИнтерфейса = МенюФункцийТекущегоРаздела.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), ИмяКнопки,,10);
		КонецЕсли;	 
	КонецЕсли;	 
	
	Если КнопкаКомандногоИнтерфейса = Неопределено Тогда
		Стр = "Команда меню <" + ИмяКнопки + "> не найдена в панели функций!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	КнопкаКомандногоИнтерфейса.Нажать();
	
	//Ванесса.ПосмотретьЗначение(ПодчиненныеОбъекты,Истина);
	//КнопкаКомандногоИнтерфейса.Нажать();
КонецПроцедуры






&НаКлиенте
//И     В открытой форме я нажимаю кнопку выбора у поля с заголовком "Реквизит2"
//@ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСЗаголовком(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			Поле         = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,ИмяРеквизита);
		Иначе
			Поле         = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),ИмяРеквизита);
		КонецЕсли;	 
		Если Поле = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Поле.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		Поле.Выбрать();
	
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Поле с именем <" + ИмяРеквизита + "> не найдено!";
		Иначе	
			Стр = "Поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я нажимаю кнопку выбора у поля "Реквизит2"
//@ВОткрытойФормеЯНажимаюКнопкуВыбораУПоля(Парам01)
Процедура ВОткрытойФормеЯНажимаюКнопкуВыбораУПоля(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСЗаголовком(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры







&НаКлиенте
//И     В открытой форме я нажимаю кнопку выбора у поля с именем "Реквизит4"
//@ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСИменем(Парам01)
Процедура ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСИменем(ИмяРеквизита) Экспорт
	ВОткрытойФормеЯНажимаюКнопкуВыбораУПоляСЗаголовком(ИмяРеквизита,Истина);
КонецПроцедуры

&НаКлиенте
//И     табличный документ формы с именем "РеквизитТабличныйДокумент" стал равен:
//@ТабличныйДокументФормыСИменемСталРавен(Парам01,ТабПарам)
Процедура ТабличныйДокументФормыСИменемСталРавен(ИмяРеквизита,ТабПарамБыло,СталПустым = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		
		ПолеТабДок   = ТекущаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,ИмяРеквизита);
		Если ПолеТабДок = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если ПолеТабДок = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		ТабДокСтало = Ванесса.ПолучитьТабДокИзTestClient(ПолеТабДок);
		Если СталПустым Тогда
			Если ТабДокСтало.Количество() = 0 Тогда
				Возврат;
			Иначе
				Стр = "В табличном документе " + ТабДокСтало.Количество() + " строк, а ожидалось, что он пустой.";
				Сообщить(Стр);
				ВызватьИсключение Стр;
			КонецЕсли;	 
		КонецЕсли;	 
		
		//Ванесса.ПосмотретьЗначение(ТабПарамБыло,Истина);
		Если ТабДокСтало.Количество() <> ТабПарамБыло.Количество() Тогда
			Стр = "В табличном документе " + ТабДокСтало.Количество() + " строк, а ожидалось " + ТабПарамБыло.Количество() + " строк.";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
		Ном = -1;
		Для каждого СтрСтало Из ТабДокСтало Цикл
			Ном     = Ном + 1;
			СтрБыло = ТабПарамБыло[Ном];
			
			Если СтрСтало.Количество() <> СтрБыло.Количество() Тогда
				Стр = "В табличном документе " + СтрСтало.Количество() + " колонок, а ожидалось " + СтрБыло.Количество() + " колонок.";
				Сообщить(Стр);
				ВызватьИсключение Стр;
			КонецЕсли;	 
			
			
			НомКол = 0;
			Для каждого ЗнСтало Из СтрСтало Цикл
				НомКол = НомКол + 1;
				ЗнБыло = СтрБыло["Кол" + НомКол];
				
				Если ЗнСтало <> ЗнБыло Тогда
					Если ЗнБыло <> "*" Тогда
						Стр = "В табличном документе в колонке №" + НомКол + " значение= <" + ЗнСтало + "> , а ожидалось <" + ЗнБыло + ">";
						Сообщить(Стр);
						ВызватьИсключение Стр;
					КонецЕсли;	 
				КонецЕсли;	 
				
			КонецЦикла;
		КонецЦикла;
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Стр = "Элемент формы с именем <" + ИмяРеквизита + "> не найден!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я нажимаю на кнопку с именем "ЗаполнитьРекСтрока1"
//@ВОткрытойФормеЯНажимаюНаКнопкуСИменем(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаКнопкуСИменем(ИмяКнопки) Экспорт
	ВОткрытойФормеЯНажимаюНаКнопкуСЗаголовком(ИмяКнопки,Истина);
КонецПроцедуры




&НаКлиенте
//И     Я закрываю окно с заголовком "Справочник1"
//@ЯЗакрываюОкноСЗаголовком(Парам01)
Процедура ЯЗакрываюОкноСЗаголовком(ЗаголовокОкна) Экспорт
	ОкноПриложения = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"),ЗаголовокОкна);
	Если ОкноПриложения = Неопределено Тогда
		Стр = "Окно с заголовком <" + ЗаголовокОкна + "> не найдено!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	ОкноПриложения.Закрыть();
КонецПроцедуры

&НаКлиенте
//И     Я закрываю окно "Справочник1"
//@ЯЗакрываюОкно(Парам01)
Процедура ЯЗакрываюОкно(ЗаголовокОкна) Экспорт
	ЯЗакрываюОкноСЗаголовком(ЗаголовокОкна);
КонецПроцедуры






&НаКлиенте
//И     В текущем окне я нажимаю кнопку командного интерфейса "Общая команда для справочника1"
//@ВТекущемОкнеЯНажимаюКнопкуКомандногоИнтерфейса(Парам01)
Процедура ВТекущемОкнеЯНажимаюКнопкуКомандногоИнтерфейса(ИмяКнопки) Экспорт
	АктивноеОкно       = КонтекстСохраняемый.ТестовоеПриложение.ПолучитьАктивноеОкно();
	КомандныйИнтерфейс = АктивноеОкно.ПолучитьКомандныйИнтерфейс();
	//ОкноПриложенияОсновноеCommandInterface = КонтекстСохраняемый.ОкноПриложенияОсновноеCommandInterface;
	КнопкаКомандногоИнтерфейса = КомандныйИнтерфейс.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), ИмяКнопки,,5);
	Если КнопкаКомандногоИнтерфейса = Неопределено Тогда
		Стр = "Кнопка с заголовком <" + ИмяКнопки + "> не найдена";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	КнопкаКомандногоИнтерфейса.Нажать();
КонецПроцедуры

&НаКлиенте
//И     В открытой форме в ТЧ ""Товары"" я добавляю новую строку
//@ВОткрытойФормеВТЧЯДобавляюНовуюСтроку(Парам01)
Процедура ВОткрытойФормеВТЧЯДобавляюНовуюСтроку(ИмяТЧ) Экспорт
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Таблица = ТекущаяФорма.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),, ИмяТЧ);
		
		Если Таблица = Неопределено Тогда
			Продолжить;
		КонецЕсли; 
		
		Таблица.ДобавитьСтроку();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Стр = "ТЧ с именем <" + ИмяТЧ + "> не найдена!";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	
	
КонецПроцедуры





&НаКлиенте
//И     В открытой форме я нажимаю на кнопку открытия поля с заголовком "Реквизит2"
//@ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСЗаголовком(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
		Иначе
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
		КонецЕсли;	 
		
		Если МассивЭлементов = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() = 0 Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() > 1  Тогда
			Сообщить("Обнаружено несколько полей с заголовком <" + ИмяРеквизита + ">");
			Ном = 0;
			Для каждого Элем Из МассивЭлементов Цикл
				Ном = Ном + 1;
				Сообщить("№" + Ном + ". Заголовок=<" + Элем.ТекстЗаголовка  + ">. Имя=<" + Элем.Имя + ">. ТекстПоля = <" + Элем.ПолучитьПредставлениеДанных() + ">");
			КонецЦикла;
			
			Стр = "Найдено более одного поля формы с заголовком <" + ИмяРеквизита + ">. Рекомендуется искать элемент по имени.";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
		ПолеРеквизит = МассивЭлементов[0];
		
		
		ПолеРеквизит.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		ПолеРеквизит.Открыть();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Элемента формы с именем <" + ИмяРеквизита + "> не найдено.";
		Иначе	
			Стр = "Элемента формы с заголовком <" + ИмяРеквизита + "> не найдено.";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я нажимаю на кнопку открытия поля "Реквизит2"
//@ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоля(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоля(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСЗаголовком(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//И     В открытой форме я нажимаю на кнопку открытия поля с именем "Реквизит2"
//@ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСИменем(Парам01)
Процедура ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСИменем(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюНаКнопкуОткрытияПоляСЗаголовком(ИмяРеквизита,Истина);
КонецПроцедуры



&НаКлиенте
//И     В открытой форме из выпадающего списка с заголовком "Реквизит2" я выбираю "ТестовыйЭлемент21"
//@ВОткрытойФормеИзВыпадающегоСпискаСЗаголовкомЯВыбираю(Парам01)
Процедура ВОткрытойФормеИзВыпадающегоСпискаСЗаголовкомЯВыбираю(ИмяРеквизита,ВыбираемоеЗначение,ИскатьПоИмени = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
		Иначе
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
		КонецЕсли;	 
		
		Если МассивЭлементов = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() = 0 Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() > 1  Тогда
			Сообщить("Обнаружено несколько полей с заголовком <" + ИмяРеквизита + ">");
			Ном = 0;
			Для каждого Элем Из МассивЭлементов Цикл
				Ном = Ном + 1;
				Сообщить("№" + Ном + ". Заголовок=<" + Элем.ТекстЗаголовка  + ">. Имя=<" + Элем.Имя + ">. ТекстПоля = <" + Элем.ПолучитьПредставлениеДанных() + ">");
			КонецЦикла;
			
			Стр = "Найдено более одного поля формы с заголовком <" + ИмяРеквизита + ">. Рекомендуется искать элемент по имени.";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
		ПолеРеквизит = МассивЭлементов[0];
		
		
		ПолеРеквизит.Активизировать();
		СделатьДействияПриЗаписиВидео("толькомышь");
		СделатьДействияПриЗаписиHTML("толькомышь");
		ПолеРеквизит.ВыполнитьВыборИзСпискаВыбора(ВыбираемоеЗначение);
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Элемента формы с именем <" + ИмяРеквизита + "> не найдено.";
		Иначе	
			Стр = "Элемента формы с заголовком <" + ИмяРеквизита + "> не найдено.";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
//И     В открытой форме из выпадающего списка "Реквизит2" я выбираю "ТестовыйЭлемент21"
//@ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю(Парам01)
Процедура ВОткрытойФормеИзВыпадающегоСпискаЯВыбираю(ИмяРеквизита,ВыбираемоеЗначение,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеИзВыпадающегоСпискаСЗаголовкомЯВыбираю(ИмяРеквизита,ВыбираемоеЗначение,ИскатьПоИмени);
КонецПроцедуры







&НаКлиенте
//И     В открытой форме из выпадающего списка с именем "Реквизит2" я выбираю "ТестовыйЭлемент21"
//@ВОткрытойФормеИзВыпадающегоСпискаСИменемЯВыбираю(Парам01)
Процедура ВОткрытойФормеИзВыпадающегоСпискаСИменемЯВыбираю(ИмяРеквизита,ВыбираемоеЗначение) Экспорт
	ВОткрытойФормеИзВыпадающегоСпискаСЗаголовкомЯВыбираю(ИмяРеквизита,ВыбираемоеЗначение,Истина);
КонецПроцедуры




&НаКлиенте
//И     В открытой форме я нажимаю кнопку очистить у поля с заголовком "Отбор"
//@ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСЗаголовком(Парам01)
Процедура ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСЗаголовком(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	Нашли = Ложь;
	МассивФорм = НайтиФормыТекущегоОкна();
	Для каждого ТекущаяФорма Из МассивФорм Цикл
		Если ИскатьПоИмени Тогда
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
		Иначе
			МассивЭлементов        = ТекущаяФорма.НайтиОбъекты(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
		КонецЕсли;	 
		
		Если МассивЭлементов = Неопределено Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() = 0 Тогда
			Продолжить;
		КонецЕсли;	 
		
		Если МассивЭлементов.Количество() > 1  Тогда
			Сообщить("Обнаружено несколько полей с заголовком <" + ИмяРеквизита + ">");
			Ном = 0;
			Для каждого Элем Из МассивЭлементов Цикл
				Ном = Ном + 1;
				Сообщить("№" + Ном + ". Заголовок=<" + Элем.ТекстЗаголовка  + ">. Имя=<" + Элем.Имя + ">. ТекстПоля = <" + Элем.ПолучитьПредставлениеДанных() + ">");
			КонецЦикла;
			
			Стр = "Найдено более одного поля формы с заголовком <" + ИмяРеквизита + ">. Рекомендуется искать элемент по имени.";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
		ПолеРеквизит = МассивЭлементов[0];
		
		
		ПолеРеквизит.Активизировать();
		СделатьДействияПриЗаписиВидео();
		СделатьДействияПриЗаписиHTML();
		ПолеРеквизит.Очистить();
		
		
		Нашли = Истина;
		Прервать;
	КонецЦикла;
	
	Если НЕ Нашли Тогда
		Если ИскатьПоИмени Тогда
			Стр = "Элемента формы с именем <" + ИмяРеквизита + "> не найдено.";
		Иначе	
			Стр = "Элемента формы с заголовком <" + ИмяРеквизита + "> не найдено.";
		КонецЕсли;	 
		
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
//И     В открытой форме я нажимаю кнопку очистить у поля "Отбор"
//@ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоля(Парам01)
Процедура ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоля(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСЗаголовком(ИмяРеквизита,ИскатьПоИмени);
КонецПроцедуры






&НаКлиенте
//И     В открытой форме я нажимаю кнопку очистить у поля с именем "Отбор"
//@ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСИменем(Парам01)
Процедура ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСИменем(ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ВОткрытойФормеЯНажимаюКнопкуОчиститьУПоляСЗаголовком(ИмяРеквизита,Истина);
КонецПроцедуры


&НаКлиенте
//И     табличный документ формы с именем "РеквизитТабличныйДокумент" стал пустым
//@ТабличныйДокументФормыСИменемСталПустым(Парам01)
Процедура ТабличныйДокументФормыСИменемСталПустым(ИмяРеквизита) Экспорт
	ТабличныйДокументФормыСИменемСталРавен(ИмяРеквизита,Неопределено,Истина);
КонецПроцедуры



&НаКлиенте
//И В открытой форме в таблице с именем "ДеревоТестов" в колонке "Имя" нет значения "Temp1"
//@ВОткрытойФормеВТаблицеСИменемВКолонкеНетЗначения(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТаблицеСИменемВКолонкеНетЗначения(ИмяТЧ,ИмяКолонки,ПроверяемоеЗначение) Экспорт
	ТЧ         = НайтиТЧПоИмени(ИмяТЧ);
	ЗначениеТЧ = ПолучитьСтрокиИзТаблицыTestClient(ТЧ);
	
	НомСтр = 0;
	Для каждого СтрокаТЧ Из ЗначениеТЧ Цикл
		НомСтр = НомСтр + 1;
		
		Значение = СтрокаТЧ[ИмяКолонки];
		Если Значение = Неопределено Тогда
			Стр = "В таблице <" + ИмяТЧ + ">  нет колонки <" + ИмяКолонки + ">";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		
		Если Значение = ПроверяемоеЗначение Тогда
			Стр = "В таблице <" + ИмяТЧ + "> в строке №" + НомСтр + " найдено значение " + ПроверяемоеЗначение + ", а его не должно было быть.";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
//И В открытой форме в таблице с именем "ДеревоТестов" в колонке "Имя" есть значение "ОткрытиеФормы"
//@ВОткрытойФормеВТаблицеСИменемВКолонкеЕстьЗначение(Парам01,Парам02,Парам03)
Процедура ВОткрытойФормеВТаблицеСИменемВКолонкеЕстьЗначение(ИмяТЧ,ИмяКолонки,ПроверяемоеЗначение) Экспорт
	ТЧ         = НайтиТЧПоИмени(ИмяТЧ);
	ЗначениеТЧ = ПолучитьСтрокиИзТаблицыTestClient(ТЧ);
	
	Нашли = Ложь;
	
	НомСтр = 0;
	Для каждого СтрокаТЧ Из ЗначениеТЧ Цикл
		НомСтр = НомСтр + 1;
		
		Значение = СтрокаТЧ[ИмяКолонки];
		Если Значение = Неопределено Тогда
			Стр = "В таблице <" + ИмяТЧ + ">  нет колонки <" + ИмяКолонки + ">";
			Сообщить(Стр);
			ВызватьИсключение Стр;
		КонецЕсли;	 
		Если Значение = ПроверяемоеЗначение Тогда
			Нашли = Истина;
			Прервать;
		КонецЕсли;	 
	КонецЦикла;
	
	Если Не Нашли Тогда
		Стр = "В таблице <" + ИмяТЧ + ">  НЕ найдено значение " + ПроверяемоеЗначение + ", а оно должно было быть.";
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 	
	
КонецПроцедуры


&НаКлиенте
//И     В открытой форме в ТЧ "Отборы" я активизирую поле "Условие"
//@ВОткрытойФормеВТЧЯАктивизируюПоле(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯАктивизируюПоле(ИмяТЧ,ИмяРеквизита,ИскатьПоИмени = Ложь) Экспорт
	ТЧ                     =  НайтиТЧПоИмени(ИмяТЧ);
	
	Если ИскатьПоИмени Тогда
		ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"),, ИмяРеквизита);
	Иначе	
		ПолеРеквизит           = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"), ИмяРеквизита);
	КонецЕсли;	 
	
	Если ПолеРеквизит = Неопределено Тогда
		Если ИскатьПоИмени Тогда
			Стр = "В ТЧ <" +ИмяТЧ  + "> поле с именем <" + ИмяРеквизита + "> не найдено!";
		Иначе	
			Стр = "В ТЧ <" +ИмяТЧ  + "> поле с заголовком <" + ИмяРеквизита + "> не найдено!";
		КонецЕсли;	 
		Сообщить(Стр);
		ВызватьИсключение Стр;
	КонецЕсли;	 
	
	ПолеРеквизит.Активизировать();
	СделатьДействияПриЗаписиВидео();
	СделатьДействияПриЗаписиHTML();
КонецПроцедуры


&НаКлиенте
//И     В открытой форме в ТЧ "Отборы" я активизирую поле с именем "Условие"
//@ВОткрытойФормеВТЧЯАктивизируюПолеСИменем(Парам01,Парам02)
Процедура ВОткрытойФормеВТЧЯАктивизируюПолеСИменем(ИмяТЧ,ИмяРеквизита) Экспорт
	ВОткрытойФормеВТЧЯАктивизируюПоле(ИмяТЧ,ИмяРеквизита,Истина);
КонецПроцедуры



&НаКлиенте
//И     я буду выбирать внешний файл "c:\temp\333.epf"
//@ЯБудуВыбиратьВнешнийФайл(Парам01)
Процедура ЯБудуВыбиратьВнешнийФайл(ИмяФайла) Экспорт
	КонтекстСохраняемый.ТестовоеПриложение.УстановитьРезультатДиалогаВыбораФайла(Истина,ИмяФайла);
КонецПроцедуры


&НаКлиенте
//И     Я очищаю окно сообщений пользователю
//@ЯОчищаюОкноСообщенийПользователю
Процедура ЯОчищаюОкноСообщенийПользователю() Экспорт
	АктивноеОкно = ПолучитьАктивноеОкноИзТестовоеПриложение();
	Если АктивноеОкно <> Неопределено Тогда
		АктивноеОкно.ЗакрытьПанельСообщенийПользователю();
	КонецЕсли;	 
КонецПроцедуры

&НаКлиенте
//Когда я перехожу по навигационной ссылке "НавигационнаяСсылка"
//@ЯПерехожуПоНавигационнойСсылке(Парам01)
Процедура ЯПерехожуПоНавигационнойСсылке(НавигационнаяСсылка) Экспорт
	
	ГлавноеОкноТестируемого = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"));
    ГлавноеОкноТестируемого.Активизировать();
    ГлавноеОкноТестируемого.ВыполнитьКоманду(НавигационнаяСсылка);
	
КонецПроцедуры


